У меня есть форма для панели поиска, которая ищет проекты по названию. Проекты различаются по завершенным проектам , текущим проектам и проектам предложений . Эти три имеют одинаковую форму ожидаемого пути. Итак, я решил использовать общую форму в помощнике.
выполнено , предложение и незавершенное проекты используют разные действия в контроллере проектов. Я пробовал различать формы по params[:name]
, но это не работает. Есть ли какое-либо решение?
helper_method
module ProjectsHelper
def form_for_projects_search_bar(condition1,condition2,condition3,&block)
if condition1
form_tag proposed_projects_path, method: :get, :html => {class: "form"}, &block
elsif condition2
form_tag completed_projects_path, method: :get, :html => {class: "form"}, &block
elsif condition3
form_tag projects_path, method: :get, :html => {class: "form"}, &block
end
end
end
файл формы
<%= form_for_projects_search_bar params[:proposed_projects].present?, params[:completed_projects].present?, params[:projects].present? do |form| %>
<%= text_field_tag :term, params[:term],placeholder:"What are you looking for?", class: "search_field" %>
<%= submit_tag 'Search', name: nil, class: "search_bar_button" %>
<% end %>
маршруты
projects_path GET /projects(.:format) projects#index
proposed_projects_path GET /proposed_projects(.:format) projects#proposal
completed_projects_path GET /completed_projects(.:format) projects#completed
Я хочу проверить условие на основе имени параметра, например proposed_projects
, composed_projects
, projects
. Если я делаю правильный путь в form.html.erb
?.
Если есть другое решение?