2016-09-06 3 views
0

Я получаю неопределенную ошибку метода при попытке выполнить поиск на Flickr, используя драгоценный камень Flickraw.Rails - undefined метод `delete 'for nil: NilClass

Я совершенно новичок в Rails и попробовал несколько разных методов, но не могу заставить его работать.

Вот мой application.html.erb,

<html> 
<head> 
<title>Workspace</title> 
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> 
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true%> 
<%= csrf_meta_tags %> 
</head> 
<body> 
<%= form_tag controller: "photos", action: "search", class: "navbar-form navbar-left", method: "get" do %> 
<div class="form-group"> 
    <%=text_field_tag :search, params[:text]%> 
</div> 
<%= submit_tag "Search", class: "btn btn-default" %> 
<% end %> 

<%= yield %> 
</body> 
</html> 

Вот мой PhotosController,

class PhotosController < ApplicationController 

require "flickraw" 

def index 
    @list = flickr.photos.getRecent 
end 

def search 
    @results = flickr.photos.search(params[:text => "text"]) 
end 
end 

Я подумал, что, передавая параметр текста он будет возвращать список из общедоступных фотографий, связанных на ввод текста.

Любая помощь приветствуется.

ответ

3

params[:text => "text"] это выглядит в хеше params для ввода с ключом :text => text. Очень маловероятно, что это на самом деле то, что вы хотели сделать.

То, что вы, вероятно, хотите, это:

@results = flickr.photos.search(params[:text] => "text") 

(или что-то еще, как это ..., который соответствует как работает метод search ... который я не знаю, я просто угадать)

Возможно больше как только это:

@results = flickr.photos.search(params[:text]) 
+1

Большое спасибо за это. Такая небольшая ошибка. – Darragh

+0

Это так часто бывает :) –

0

Я также рекомендовал бы переписывать form_tag синтаксис.

от:

form_tag controller: "photos", action: "search", class: "navbar-form navbar-left", method: "get" 

к:

form_tag({controller: "photos", action: "search"}), class: "navbar-form navbar-left", method: "get" 

Это просто, чтобы предотвратить класс и метод получения добавлен в виде URL. См. http://guides.rubyonrails.org/form_helpers.html#multiple-hashes-in-form-helper-calls для справки.

Смежные вопросы