Rails 4 ActiveRecord ::存储许可证

时间:2014-04-01 16:39:27

标签: ruby-on-rails activerecord ruby-on-rails-4

请帮我处理Rails 4中的商店属性。我的user.rb中有以下几行:

class User < ActiveRecord::Base    
  store :settings, accessors: [:provider, :api, :background]
  ....
end

我试图在users_controller.rb

中允许这些参数
def user_params
  params.require(:user).permit(:email, :token, settings: [:provider, :api, :background])
end

但是,:settings序列化数组为空。

2 个答案:

答案 0 :(得分:0)

如下所示更改user_params

def user_params
  params.require(:user).permit(:email, :token, :provider, :api, :background)
end
由于您为settings定义了直接访问者,因此permitting params不需要

stored settings

我假设您已在settings表中创建了一个名为users的字段。 如果您还没有创建迁移以将列添加为:

rails g migration AddSettingsToUser settings:string

此次运行后rake db:migrate

这将在settings表中创建users列。

答案 1 :(得分:0)

这个可以解决你的问题:

def user_params
  params.require(:user).permit(:email, :token, :settings)
end

由于:setting被定义为控制器表格中的文本列,因此在user_params

中提及它就足够了