【问题标题】:Simple_form passing params to controller - no modelSimple_form 将参数传递给控制器​​ - 没有模型
【发布时间】:2016-01-17 20:24:55
【问题描述】:

我正在尝试将值作为参数从 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 什么也不传回。

任何帮助将不胜感激。

【问题讨论】:

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


    【解决方案1】:

    您应该将对象(例如 @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

    【讨论】:

    • 如果我这样做,我会得到一个空错误。我现在也没有模型。我需要有一个 Contact 对象还是有解决方法? @Oleg
    • 所以基本上 simple_form 需要一个对象才能工作......知道了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-14
    相关资源
    最近更新 更多