在rails应用程序中添加接受使用条款的检查的最佳方式是什么?接受使用条款rails
我似乎无法得到validates_acceptance_of
正常工作。我在用户模型中添加了一个bool(是否有必要?)。然后有一个复选框返回true或false。
我觉得我只是犯了一个愚蠢的小错误。有任何想法吗?
在rails应用程序中添加接受使用条款的检查的最佳方式是什么?接受使用条款rails
我似乎无法得到validates_acceptance_of
正常工作。我在用户模型中添加了一个bool(是否有必要?)。然后有一个复选框返回true或false。
我觉得我只是犯了一个愚蠢的小错误。有任何想法吗?
在模型中,
validates_acceptance_of :terms
如果您使用在你的模型attr_accessible
然后确保你还可以添加,
attr_accessible :terms
在您看来,
<%= form_for @user do |f| %>
...
<%= f.check_box :terms %>
...
<% end %>
有在用户表中不需要额外的列,除非您计划拒绝访问没有交流的用户提出了服务条款,因为他们不能完成注册。
这是一个工作轨道4的解决方案:
服务条款并不需要是列在数据库
表
= f.check_box :terms_of_service
型号/ user.rb
validates :terms_of_service, acceptance: true
最重要的是,设计会清理你的参数和服务条款将从提交的参数中删除。所以:
registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController
before_filter :configure_permitted_parameters
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) do |u|
u.permit(:full_name,
:email, :password, :password_confirmation, :terms_of_service)
end
end
end
如果您只需要在用户注册时进行验证,则可以将::create添加到验证程序。 – krx 2016-05-10 16:00:12
一些片段,将有助于对破译的解决方案! – eLobato 2011-06-12 19:34:41