2016-02-21 2 views
0

Я пытаюсь реализовать функцию поиска, но не могу понять, что simple_form_for должен совпадать с маршрутами:Переходя параметр, чтобы получить член через simple_form

resources :shows do 
    member do 
    get :search 
    end 

    resources :episodes 
end 

Я попробовал несколько различных форматов :

# views/shows/_search.html.erb 

<%= simple_form_for :search, url: search_show_path(show), :method => :get do |f| %> 
    <%= f.input :search %> 

    <%= f.button :submit, "Search", class: "btn btn-default" %> 
<% end %> 

<%= simple_form_for search_show_path(show), :method => :get do |f| %> 
    <%= f.input :search %> 

    <%= f.button :submit, "Search", class: "btn btn-default" %> 
<% end %> 

<%= simple_form_for search_show_url(show), :method => :get do |f| %> 
    <%= f.input :search %> 

    <%= f.button :submit, "Search", class: "btn btn-default" %> 
<% end %> 

Когда я устанавливаю строку в контроллер вместо params[:search] запрос работает, поэтому я оставлю этот код из. Я звоню в форму с <%= render 'search', show: @show %> в views/shows/show.html.erb.

ответ

1

Поскольку вы ожидаете объект в params[:id], это означает его маршрут участника, а не коллекционный.

Изменить ваши маршруты файл в:

resources :shows do 
    member do 
    get :search 
    end 

    resources :episodes 
end 

Debug Подсказка: Всегда видеть, Что адрес, который становится встроенным (например http://localhost:3000/shows/search.6?utf8=%E2%9C%93&search%5Bsearch%5D=test&commit=Search) в этом случае .. 6 не было получение прошло в URL правильно .. Таким образом, проблема с помощниками пути.

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