首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强params rails 4允许params

强params rails 4允许params
EN

Stack Overflow用户
提问于 2013-07-30 11:36:30
回答 3查看 1.1K关注 0票数 0

我的对子是这样的

代码语言:javascript
复制
{
:project_id => "1",
:ticket => {:name => "Ticket1"}
}

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

控制器

Params.require(:票证).permit(:name)

EN

回答 3

Stack Overflow用户

发布于 2013-08-15 11:45:42

以下是我所做的

我为项目参数添加了另一个函数

代码语言:javascript
复制
   def ticket_group_params
      params.require(:ticket_group).permit(:name)      
   end

   def project_params
      params.permit(:project_id)
   end

然后,我只是合并的结果,仅为创建行动,例如。

代码语言:javascript
复制
  # POST /ticket_group
  # POST /ticket_group.json
  def create
    @ticket_group = TicketGroup.new(ticket_group_params.merge(project_params))
    respond_to do |format|
票数 1
EN

Stack Overflow用户

发布于 2014-09-10 17:20:01

代码语言:javascript
复制
def ticket_params
 name_params = params.require(:ticket).permit(:name)
 name_params.merge(params.permit(:project_id))
end
# => {name: 'val', project_id: 'val'}

代码语言:javascript
复制
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'}

或者,可能是

代码语言:javascript
复制
def ticket_params
  params.permit(:project_id, ticket: [:name])
end
# => {project_id: 'val', ticket: {name: 'val'}}
票数 1
EN

Stack Overflow用户

发布于 2013-07-30 16:49:48

您可能需要将其作为隐藏属性添加到窗体上,如下所示:

代码语言:javascript
复制
<input type="hidden" name="ticket[project_id]" value="<%= @ticket.project_id %>" />

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

代码语言:javascript
复制
params.require(:ticket).permit(:name,:project_id)

下面是一个有用的链接:parameters

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17945993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档