Принять условия использования рельсов
Каков наилучший способ добавить проверку для принятия условий использования в приложении rails?
Кажется, я не получаю validates_acceptance_of
, работающий совершенно правильно. Я добавил bool в мою модель пользователя (это было необходимо?). Затем установите флажок, который возвращает true/false.
Я чувствую, что просто делаю глупую небольшую ошибку. Любые идеи?
Ответы
Ответ 1
В вашей модели
validates_acceptance_of :terms
Если вы используете attr_accessible
в своей модели, убедитесь, что вы также добавили
attr_accessible :terms
По вашему мнению,
<%= form_for @user do |f| %>
...
<%= f.check_box :terms %>
...
<% end %>
Нет необходимости в дополнительном столбце в таблице users, если вы не планируете отказывать в доступе к пользователям, которые не приняли условия обслуживания, которых не будет, поскольку они не могут завершить регистрацию в первую очередь.
Ответ 2
Это рабочее решение Rails 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