Simple_form 将参数传递给控制器 - 无模型
Simple_form passing params to controller - no model
我试图将一个值作为参数从 simple_form 传递给控制器,但我无法读出该值。我的示例表单是这样的:
<%= simple_form_for 'page_contact_path', :method => "GET" do |f| %>
<%= f.input :name %>
<%= f.button :submit, 'Submit Form' %>
<% end %>
控制器看起来像这样:
def contact
@name = params[:name]
end
我可以使用常规 form_for 标签访问参数:
<%= form_for 'page_contact_path', :method => "POST" do |f| %>
<%= label_tag :name, "Full Name: " %>
<%= text_field_tag :name %><br/>
<%= submit_tag "Submit" %>
<% end %>
在我看来,我只是访问实例变量@name 以查看是否传递了任何内容。使用 form_for 我能够将值返回给视图,但 simple_form 什么也没有传回。
如有任何帮助,我们将不胜感激。
您应该将对象 @contact
传递给 simple_form
<%= simple_form_for @contact, path: 'page_contact_path' do |f| %>
<%= f.input :name %>
<%= f.button :submit, 'Submit Form' %>
<% end %>
编辑
但是如果您没有对象模型并且您需要表单只是为了获取参数 :name
使用 form_for
和 rails 助手 text_field_tag
我试图将一个值作为参数从 simple_form 传递给控制器,但我无法读出该值。我的示例表单是这样的:
<%= simple_form_for 'page_contact_path', :method => "GET" do |f| %>
<%= f.input :name %>
<%= f.button :submit, 'Submit Form' %>
<% end %>
控制器看起来像这样:
def contact
@name = params[:name]
end
我可以使用常规 form_for 标签访问参数:
<%= form_for 'page_contact_path', :method => "POST" do |f| %>
<%= label_tag :name, "Full Name: " %>
<%= text_field_tag :name %><br/>
<%= submit_tag "Submit" %>
<% end %>
在我看来,我只是访问实例变量@name 以查看是否传递了任何内容。使用 form_for 我能够将值返回给视图,但 simple_form 什么也没有传回。
如有任何帮助,我们将不胜感激。
您应该将对象 @contact
传递给 simple_form
<%= simple_form_for @contact, path: 'page_contact_path' do |f| %>
<%= f.input :name %>
<%= f.button :submit, 'Submit Form' %>
<% end %>
编辑
但是如果您没有对象模型并且您需要表单只是为了获取参数 :name
使用 form_for
和 rails 助手 text_field_tag