【问题标题】:Unable to pass the params[:fields] hash to controller method in Ruby on Rails无法将 params[:fields] 哈希传递给 Ruby on Rails 中的控制器方法
【发布时间】:2012-08-21 06:00:53
【问题描述】:
 routes.rb
-----------
resources :mail_settings

我的表单是这样的

the _form.html.erb
---------
<%= form_tag  '/mail_settings' do %>



<div class="fieldBlock">
 <%= label_tag :name %>  <%= text_field_tag :name%> </div>

<div class="fieldBlock">
 <%= label_tag :id%>  <%= text_field_tag :id%> </div>


<div class="actions fieldBlock">
 <%= submit_tag "Update Settings ", :class => "btn-large btn-success" %>
</div>


<% end %>

但是我可以毫无问题地访问像 params[:name] 这样的单个参数,为什么当我尝试 params[:mail_setting] 时它不起作用?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 forms routes params


    【解决方案1】:

    你的意思是为什么它是 params[:name] 而不是 params[:mail_setting][:name] ?如果是这样,原因是您使用的是form_tag 而不仅仅是form,以及*_tag 助手系列[即text_field_tag]。在这种情况下,您不会将表单“绑定”到模型 - 通常 form_tag 比表单灵活得多。但是,您应该能够执行类似的操作

    <%= text_field_tag "mail_setting[name]"%>
    

    你会得到 params[:mail_setting][:name]

    希望我猜到你问的是什么!

    【讨论】:

      猜你喜欢
      • 2019-04-10
      • 2016-08-13
      • 1970-01-01
      • 2018-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-24
      相关资源
      最近更新 更多