如果我像这样设置我的路线,例如:
resources :articles do
member do
get :search
end
end
使用params[:search]
search
ArticlesController
方法时,表单应该是什么样的?我一直在尝试各种变化,但无法让它发挥作用:
<%= form_for search_article_path, :method => :get do |f| %>
<%= f.label :search %>
<%= f.text_field :search %>
<%= f.submit :submit %>
<% end %>
答案 0 :(得分:1)
Rails提供了一系列帮助程序,用于生成表单元素,如复选框,文本字段和单选按钮。名称以_tag结尾的这些基本助手(例如text_field_tag和check_box_tag)只生成一个<input>
元素。这些参数的第一个参数始终是输入的名称。提交表单时,名称将与表单数据一起传递,并将使用用户为该字段输入的值进入控制器中的params哈希。例如,如果表单包含<%=
text_field_tag(:query) %>
,那么您将能够使用params[:query]
在控制器中获取此字段的值。
如果您遇到params问题,可以查看此视频:https://gorails.com/episodes/the-params-hash