链接Rails控制器中的强参数

时间:2015-12-12 23:47:03

标签: ruby-on-rails strong-parameters

在这个Rails控制器中,我有一个共享一些参数的createupdate方法,但我只想在创建时设置course_id。我怎样才能干#34;这两种方法?有没有办法将两个permit链接起来,所以我可以说"允许描述和标题"然后添加" course_id"创建方法中的许可证?

def topic_create_params
  params.require(:topic).permit(
    :course_id,
    :description,
    :title
  )
end

def topic_update_params
  params.require(:topic).permit(
    :description,
    :title
  )
end

2 个答案:

答案 0 :(得分:3)

我认为这可行:

def topic_params(attrs = [])
  params.require(:topic).permit *([:description, :title] + attrs)
end

def topic_create_params
  topic_params([:course_id])
end

答案 1 :(得分:1)

在方法参数中使用splat运算符代替@Hoang Phan的答案略有不同......

def topic_params(*attrs)
  attrs = ([:description, :title] + attrs).uniq
  params.require(:topic).permit(attrs)
end

def topic_create_params
  topic_params(:course_id, :thing_id)
end