在rails 4中,我可以合并! StrongParams,但因为rails 5(beta1)合并!不可用。哪个是在控制器中执行此操作的最佳方法
params = ActionController::Parameters.new({
name: 'Francesco',
age: 22,
role: 'admin'
})
params.merge!(city: "Los Angeles")
答案 0 :(得分:5)
据我所知[{3}},您merge
而非merge!
。换句话说,似乎不可能修改哈希值。
以下代码可以使用:
params = ActionController::Parameters.new({
name: 'Francesco',
age: 22,
role: 'admin'
})
params = params.merge(city: "Los Angeles")
答案 1 :(得分:2)
在Rails 5中:ActionController :: Parameters现在返回一个对象而不是一个哈希。
所以你必须使用params.permit(:city).to_h来访问城市。
有关ActionController :: Parameters如何在Rails5中运行的更多详细信息?
参考:http://www.rortuts.com/ruby-on-rails/rails5-actioncontrollerparameters/
答案 2 :(得分:0)
希望这对任何人都有帮助。
def comment_params
params.require(:comment).permit(:title, :user_id, :color)
end
我想将color属性与我的自定义颜色代码或名称合并。所以动态合并颜色属性
像这样在轨道5中初始化params,
params = ActionController::Parameters.new(comment_params)
params = params.merge(color: "green")
答案 3 :(得分:0)
new_params = params.to_h.merge(city: "Los Angeles")