Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails访问整个参数散列_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails RubyonRails访问整个参数散列

Ruby on rails RubyonRails访问整个参数散列,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个处理用户ROTA的应用程序——我目前正在添加管理员批准的功能。如果用户更新自己的rota,则参数散列如下所示: 参数:{id:1,角色id:1,团队id:1,后备队:[起始日期:2014年1月1日,结束日期:2014年2月2日]} 并使用带有以下内容的表格提交: <%= form_for [@team,@role,@rota] do |f| %> form code <% end %> 表格代码 我们需要访问rota:object外部的属性,但目前无法找到访

我有一个处理用户ROTA的应用程序——我目前正在添加管理员批准的功能。如果用户更新自己的rota,则参数散列如下所示:

参数:{id:1,角色id:1,团队id:1,后备队:[起始日期:2014年1月1日,结束日期:2014年2月2日]}

并使用带有以下内容的表格提交:

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

表格代码
我们需要访问rota:object外部的属性,但目前无法找到访问as:

params.require要求您传入一个对象


我的团队成员已决定添加隐藏字段以提交rota对象内的属性,但这似乎是多余的,因为它们非常清楚地存在,我们无法找到访问它们的方法和想法?

我说的是

def user_rota_params
    params.require(:user)
          .permit(:role_id, :team_id, :rota => [:startDate, :endDate])
end
然后,对于嵌套属性,您可以使用
字段\u进行

因此,您的表单应该是这样的(省略标签并保持基本):



帮助我理解,为什么不向用户传递一个表单,允许特定的强参数?我们正在传递一个表单,但是,从上述表单发送的参数出现在参数散列中的任何对象之外。因此,我们正在尝试访问它们。如果我们没有在表单中指定rota,并且rota抱怨路由无效,我将尝试提供答案。那么您是否使用嵌套路由?是,我们有这个页面的路径看起来像:Team/1/Role/1/Rota/1/edit您的参数应该像这样
params={:Role=>{:id=>1},:Team=>{:id=>1},:Rota=>{:startDate=>“,:endDate=>”。}
。。。访问它们,如
params[:role][:id]
params[:team][:id]
params[:rota][:startDate]
params[:rota][endDate]
<%= 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 %>