这是我的_search_box.html.erb
文件
<%= form_tag "/search", :method => "get" do %>
<%= text_field :q %>
<%= submit_tag 'Search' %>
<% end %>
在search.html.erb
中呈现:
<% if @products %>
<%= render(:partial => "products") %>
<% end %>
但是,我在_search_box.html.erb
第2行收到错误:
Showing /****/app/views/catalog/_search_box.html.erb where line #2 raised:
wrong number of arguments (1 for 2)
Extracted source (around line #2):
1: <%= form_tag "/search", :method => "get" do %>
2: <%= text_field :q %>
3: <%= submit_tag 'Search' %>
4: <% end %>
Waht&#392错了?
答案 0 :(得分:3)
form_tag
不是text_field
给你错误的,text_field
。 form_for
旨在form_tag
内使用,而不是text_field_tag
。
我认为您的意思是使用{{1}}代替。
text_field(object_name,method,options = {})
返回“text”类型的输入标记,该标记用于访问分配给模板的对象(由对象标识)的指定属性(由方法标识)。输入标记上的其他选项可以作为带选项的哈希传递。这些选项将作为HTML元素属性标记到HTML上,如图所示。
http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html
text_field_tag(name,value = nil,options = {})
创建标准文本字段;使用这些文本字段输入较小的文本块,如用户名或搜索查询。
http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html