繁体   English   中英

合并ActionController :: Parameters与rails 5

[英]Merge ActionController::Parameters with rails 5

在rails 4中,我可以合并! StrongParams,但由于Rails 5(beta1)合并了! 不可用。 这是在控制器中执行此操作的最佳方法

  params = ActionController::Parameters.new({
             name: 'Francesco',
             age:  22,
             role: 'admin'
         })
         params.merge!(city: "Los Angeles")

据我从源代码中看到,您已经merge而不是merge! 换句话说,似乎不可能就地修改哈希值。

以下代码将起作用:

params = ActionController::Parameters.new({
             name: 'Francesco',
             age:  22,
             role: 'admin'
         })
params = params.merge(city: "Los Angeles")

params.merge!(城市:“洛杉矶”)与Rails5.0.1一起使用

在此处输入图片说明

在Rails 5中:ActionController :: Parameters现在返回一个对象而不是哈希。

因此您必须使用params.permit(:city).to_h来访问城市。

有关更多详细信息,ActionController :: Parameters如何在Rails5中工作?

参考: http : //www.rortuts.com/ruby-on-rails/rails5-actioncontrollerparameters/

希望这对任何人都有帮助。

def comment_params
  params.require(:comment).permit(:title, :user_id, :color)
end

我想将颜色属性与我的自定义颜色代码或名称合并。 以便动态合并颜色属性

像这样在Rails 5中初始化参数,

params = ActionController::Parameters.new(comment_params)
params = params.merge(color: "green")
new_params = params.to_h.merge(city: "Los Angeles")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM