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