我的对子是这样的
{
:project_id => "1",
:ticket => {:name => "Ticket1"}
}如何将project_id添加到允许的参数中?
控制器
Params.require(:票证).permit(:name)
发布于 2013-08-15 11:45:42
以下是我所做的
我为项目参数添加了另一个函数
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|发布于 2014-09-10 17:20:01
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'}}发布于 2013-07-30 16:49:48
您可能需要将其作为隐藏属性添加到窗体上,如下所示:
<input type="hidden" name="ticket[project_id]" value="<%= @ticket.project_id %>" />然后在控制器中可以这样做:
params.require(:ticket).permit(:name,:project_id)下面是一个有用的链接:parameters
https://stackoverflow.com/questions/17945993
复制相似问题