请帮我处理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
序列化数组为空。
答案 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