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