嘿,我有一个简单的rails应用程序设置,其中包含名为worker的设计模型和名为user的常规模型。
Worker:
has_one :user, as: :account, autobuild: true
accepts_nested_attributes_for :user
User:
belongs_to :account, polymorphic: true
accepts_nested_attributes_for :account
在我的用户模型上,我有一个布尔字段:tos,默认为:false。当我的用户在sign_up页面上创建一个新设计帐户时,我希望将tos复选框输入作为worker [user_attributes] [tos],并在用户模型上验证接受并将值存储为模型中的true:tos字段。
我的复选框:
%input{ name: 'worker[user_attributes][tos]', type: 'checkbox', value: '1' }
我的用户验证:
validates_acceptance_of :tos, allow_nil: false, on: :create
由于某些原因,似乎验证无效,是否有任何配置我需要设计来实现这一点?如果我拿出验证帐户刚刚创建,并且数据库中的tos仍为false,如果我添加验证并选中复选框,则表示验证失败。
答案 0 :(得分:0)
不是为每个用户保存tos,而是将其从迁移中删除,然后执行以下操作
attr_reader :tos
validates_acceptance_of :tos