Simple_form将params传递给控制器​​ - 没有模型

时间:2016-01-17 20:24:55

标签: ruby-on-rails-4 parameters parameter-passing simple-form

我正在尝试将值作为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没有返回任何内容。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

您应该将对象@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 helpers text_field_tag