valida la casilla de verificación de aceptación de los términos y la conexión de Facebook
Frecuentes
Visto 2,206 veces
1
¿Cómo se puede forzar la aceptación de términos y condiciones con facebook connect?
En mi OmniauthCallbacksController probé
@user_ipad.terms = true
La validación del usuario aún falla y el usuario es redirigido al formulario sign_up con un mensaje de error.
/app/controllers/OmniauthCallbacksController
@user_ipad = UserIpad.new(:password => Devise.friendly_token[0,20])
@user_ipad.update_with_facebook_infos(omniauth)
@user_ipad.authentication_ways.build(:provider => omniauth['provider'], :uid => omniauth['uid'])
@user_ipad.terms = true
if @user_ipad.save()
sign_in_and_redirect @user_ipad, :event => :authentication
else
session["devise.facebook_data"] = omniauth
render :action=>'new', :controller=>'user_ipads', :layout => 'empty_layout'
end
/aplicación/modelos/Usuario
attr_accessible :terms
...
validates_acceptance_of :terms, :allow_nil => false, :message => "Vous devez accepter les conditions générales d'utilisation", :on => :create
Gracias por tu ayuda, Vincent.
1 Respuestas
5
validates_acceptance_of tiene una opción "aceptar". El documento de Rails dice:
:accept - Especifica el valor que se considera aceptado. El valor predeterminado es una cadena "1", lo que facilita la relación con una casilla de verificación HTML. Esto debe establecerse en verdadero si está validando una columna de la base de datos, ya que el atributo se encasilla de "1" a verdadero antes de la validación.
Entonces, en su caso, debe reemplazar
@user_ipad.terms = true
con :
@user_ipad.terms = "1"
respondido 10 mar '12, 14:03
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas ruby-on-rails facebook devise or haz tu propia pregunta.