Ruby on rails 3 接受rails的使用条款
在rails应用程序中添加接受使用条款检查的最佳方法是什么 我似乎无法让Ruby on rails 3 接受rails的使用条款,ruby-on-rails-3,validation,Ruby On Rails 3,Validation,在rails应用程序中添加接受使用条款检查的最佳方法是什么 我似乎无法让验证的可接受性。我在我的用户模型中添加了bool(有必要吗?)。然后有一个返回true/false的复选框 我觉得我只是犯了一个愚蠢的小错误。有什么想法吗?在您的模型中 validates_acceptance_of :terms 如果您在模型中使用的是attr\u accessible,请确保您还添加了 attr_accessible :terms 在你看来, <%= form_for @user do |f|
验证的可接受性。我在我的用户模型中添加了bool(有必要吗?)。然后有一个返回true/false的复选框
我觉得我只是犯了一个愚蠢的小错误。有什么想法吗?在您的模型中
validates_acceptance_of :terms
如果您在模型中使用的是attr\u accessible
,请确保您还添加了
attr_accessible :terms
在你看来,
<%= form_for @user do |f| %>
...
<%= f.check_box :terms %>
...
<% end %>
...
...
除非您计划拒绝未接受服务条款的用户访问,否则用户表中不需要额外的列。由于用户无法完成注册,服务条款将不存在。这是一个有效的Rails 4解决方案:
服务条款不需要是数据库中的一列
表格
= f.check_box :terms_of_service
型号/用户.rb
validates :terms_of_service, acceptance: true
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
最重要的是,Desive将清理您的参数,并且服务条款将从提交的参数中删除。因此:
注册\u controller.rb
validates :terms_of_service, acceptance: true
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
类注册控制器
一些代码片段将有助于破解解决方案!如果您只需要在用户注册时进行验证,您可以将add on::create添加到验证器中。值得注意的是,律师可能会要求保留用户已接受t+c的记录。。。我认为最好的做法是将布尔值保存到数据库中。