Ruby on Rails访问整个params哈希

时间:2014-11-24 20:39:50

标签: ruby-on-rails ruby

我有一个处理用户轮回的应用程序 - 我目前正在添加管理员批准的功能。如果用户更新他们自己的rota,则params散列看起来像:

参数:{id:1,role_id:1,team_id:1,rota:[startDate:01/01/2014,endDate:02/02/2014]}

并使用以下表格提交这些内容:

<%= form_for [@team,@role,@rota] do |f| %>
form code
<% end %>

我们需要访问rota:object之外的属性,但目前无法找到以下方式:

params.require要求你传递一个对象。

我的团队成员已决定添加隐藏字段以在rota对象中提交属性,但这看起来很多,因为它们非常明显,我们无法找到访问它们的方法和想法?< / p>

1 个答案:

答案 0 :(得分:0)

我在谈论像

这样的事情
def user_rota_params
    params.require(:user)
          .permit(:role_id, :team_id, :rota => [:startDate, :endDate])
end

然后,对于您的嵌套属性,您可以使用fields_for 因此,您的表格应该看起来像这样(省略标签并保持基本):

<%= form_for @user do |f| %>
    <%= f.text_field :role_id %>
    <%= f.text_field :team_id %>
    <%= f.fields_for :rota do |ff| %>
        <%= ff.date_field :startDate %>
        <%= ff.date_field :endDate %>
    <% end %>
<% end %>