如何将文本输入作为params的一部分传递给表单?

时间:2016-02-22 21:27:41

标签: ruby-on-rails ruby ruby-on-rails-4 form-for url-for

如果我像这样设置我的路线,例如:

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 %>

1 个答案:

答案 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