强大的障碍导轨4允许参数

时间:2013-07-30 11:36:30

标签: ruby-on-rails-4 strong-parameters

这是我的参数的样子,

{
:project_id => "1",
:ticket => {:name => "Ticket1"}
}

如何将 project_id 添加到允许的参数中?

控制器

  

params.require(:票).permit(:名称)

3 个答案:

答案 0 :(得分:1)

这是我做的 我为项目参数添加了另一个函数

   def ticket_group_params
      params.require(:ticket_group).permit(:name)      
   end

   def project_params
      params.permit(:project_id)
   end

然后我只将结果合并为创建动作,例如。

  # POST /ticket_group
  # POST /ticket_group.json
  def create
    @ticket_group = TicketGroup.new(ticket_group_params.merge(project_params))
    respond_to do |format|

答案 1 :(得分:1)

def ticket_params
 name_params = params.require(:ticket).permit(:name)
 name_params.merge(params.permit(:project_id))
end
# => {name: 'val', project_id: 'val'}

def ticket_params
  params.require(:ticket).permit(:name).tap do |_params|
    _params[:project_id] = params.permit(:project_id)
  end
end
# => {name: 'val', project_id: 'val'}

或者,它可能是

def ticket_params
  params.permit(:project_id, ticket: [:name])
end
# => {project_id: 'val', ticket: {name: 'val'}}

答案 2 :(得分:0)

您可能需要将此作为隐藏属性添加到表单中,如下所示:

<input type="hidden" name="ticket[project_id]" value="<%= @ticket.project_id %>" />

然后在控制器中你可以这样做:

params.require(:ticket).permit(:name,:project_id)

这是一个有用的链接: https://github.com/rails/strong_parameters