【发布时间】:2013-01-21 03:40:41
【问题描述】:
我们正在为我们的会员使用设计。我们在成员架构中添加了一个 tos_agreement 字段(布尔值),并将其添加到 views/devise/registrations/new.html.haml。
在成员模型中,我们有一个验证规则如下:
validates_acceptance_of :tos_agreement, :allow_nil => false,
:accept => true
可以正常使用 - 如果您不接受 TOS,则无法注册。
但是,问题在于编辑您的设置。如果你去/members/edit,你会得到一个表格,你可以在其中更改你的电子邮件地址或密码。 TOS 协议没有字段,因为此时不应更改。但是,当您进行更改(例如更改密码)并提交表单时,它会返回一条错误消息,即 TOS 协议不能为假。
我们如何告诉它在第一次注册后永远不要尝试修改 TOS 协议?
编辑:所以我认为根本问题是我们的 attr_accessible 中有 :tos_agreement,现在我想这是一个非常糟糕的主意。但是如果我们删除它,我们如何修改 Devise 以接受该参数并对其进行处理,即使它不是可批量赋值的?
【问题讨论】:
-
您实际上也不需要在数据库中为这些类型的变量创建一个字段,rails 只会为您创建一个虚拟字段。 guides.rubyonrails.org/…
标签: ruby-on-rails ruby-on-rails-3 validation devise ruby-on-rails-3.2