rails 4强参数+动态hstore键

hol*_*den 13 ruby-on-rails hstore strong-parameters ruby-on-rails-4

我在使用Hstore和动态访问器克服Rails 4中新的强params要求时遇到了问题

我有一个Hstore列:content,我想用它来存储多种语言的内容,即:en, :fr等等.我不知道在模型或控制器中预先设置哪种语言.

store_accessor :content, [:en, :fr] #+226 random other il8n languages won't work.
Run Code Online (Sandbox Code Playgroud)

如何在一个列的rails 4中覆盖强params(或允许动态hstore键)?

  params.require(:article).permit(
    :name, :content,
    :en, :fr #+226 random translations
  )
Run Code Online (Sandbox Code Playgroud)

缺乏...

params.require(:article).permit!
Run Code Online (Sandbox Code Playgroud)

这当然有效.

Chr*_*n-G 15

如果我理解正确,您希望将动态密钥的哈希列入白名单.您可以使用ruby以下代码执行以下操作:

params.require(:article).permit(:name).tap do |whitelisted|
  whitelisted[:content] = params[:article][:content] 
end
Run Code Online (Sandbox Code Playgroud)

这对我有用,希望它有所帮助!