无法将params [:fields]哈希传递给Ruby on Rails中的控制器方法

时间:2012-08-21 06:00:54

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

 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]时它不起作用?

1 个答案:

答案 0 :(得分:2)

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

的操作
<%= text_field_tag "mail_setting[name]"%>

你会得到参数[:mail_setting] [:name]

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