遇到服务条款和Mongoid问题

时间:2014-03-24 22:57:53

标签: ruby-on-rails ruby ruby-on-rails-4 devise mongoid

嘿,我有一个简单的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,如果我添加验证并选中复选框,则表示验证失败。

1 个答案:

答案 0 :(得分:0)

不是为每个用户保存tos,而是将其从迁移中删除,然后执行以下操作

attr_reader :tos
validates_acceptance_of :tos