Принимаю условия использования рельсов - PullRequest
12 голосов
/ 12 июня 2011

Какой лучший способ добавить проверку для принятия условий использования в приложении rails?

Кажется, я не могу заставить validates_acceptance_of работать правильноЯ добавил bool в мою модель пользователя (это было необходимо?).А затем установите флажок, который возвращает либо true / false.

Мне кажется, что я просто делаю глупую небольшую ошибку.Есть идеи?

Ответы [ 2 ]

22 голосов
/ 13 июня 2011

В вашей модели

validates_acceptance_of :terms

Если вы используете attr_accessible в вашей модели, убедитесь, что вы также добавили,

attr_accessible :terms

По вашему мнению,

<%= form_for @user do |f| %>
  ...
  <%= f.check_box :terms %>
  ...
<% end %>

Нет необходимости в дополнительном столбце в таблице пользователей, если только вы не планируете отказывать в доступе пользователям, которые не приняли условия обслуживания, которых не будет, поскольку они не могут завершить регистрацию в первомместо.

17 голосов
/ 19 июня 2014

Это рабочее решение Rails 4:

Условия предоставления услуг не обязательно должны быть столбцом в базе данных

Форма

= f.check_box :terms_of_service

Модели / user.rb

validates :terms_of_service, acceptance: true

И самое главное, devise будет дезинфицировать ваши параметры, а условия обслуживания будут удалены из представленных параметров. Итак:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...