tutorial rails español ruby-on-rails devise strong-parameters

ruby-on-rails - español - devise rails tutorial



Parámetros fuertes con Rails y Devise (3)

Estoy usando la rama Rails 4.0 of idee junto con ruby ​​2.0.0p0 y Rails 4.0.0.beta1.

Este es el tipo de pregunta en la que estoy comprobando si lo estoy haciendo de la manera correcta, o si hay otras cosas que debería hacer. Estoy seguro de que muchas personas que se mudan a Rails 4.0 se enfrentan a los mismos problemas (después de buscar en Google por cosas similares).

He leído los siguientes enlaces:

Ahora, usando el diseño, creé un modelo de usuario, creé el siguiente controlador usando las ideas anteriores (y me aseguré de incluirlo en mi archivo de rutas). Mis parámetros adicionales son first_name y last_name.

class Users::RegistrationsController < Devise::RegistrationsController def sign_up_params params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation) end def account_update_params params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation, :current_password) end private :sign_up_params private :account_update_params end

¿Hay algo más que deba hacer? ¿Es esta la mejor manera de hacer las cosas a partir de ahora (desde la caída de attr_accessor). Mis formularios parecen estar funcionando bien (tanto el nuevo como el actualizado). Los gists decían usar "resource_params" pero eso siempre daba el error de "Parámetros no permitidos" en el registro de mi servidor.


Para Rails 5, Devise 4 Usa esto:

class ApplicationController < ActionController::Base before_action :configure_permitted_parameters, if: :devise_controller? protected def configure_permitted_parameters devise_parameter_sanitizer.permit(:sign_up, keys: [:first_name, :last_name, :email, :password, :password_confirmation]) end end

Reference


Funciona muy bien con la adición de un módulo en config/initializers con todos los parameters como este

module DevisePermittedParameters extend ActiveSupport::Concern included do before_filter :configure_permitted_parameters end protected def configure_permitted_parameters devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:first_name, :last_name, :email, :password, :password_confirmation) } end end DeviseController.send :include, DevisePermittedParameters


Gracias por las últimas actualizaciones en la rama Rails4 de Devise, realmente no es necesario insertar ''resource_params''.

Creé una nueva aplicación Rails4 y seguí los pasos básicos de instalación de Devise y mi aplicación funciona correctamente, así que creo que lo has hecho bien.

Pero hay una esencia modificada que le da algunos detalles adicionales en términos de parámetros permitidos si necesita:

Fuente: https://gist.github.com/bluemont/e304e65e7e15d77d3cb9

# controllers/users/registrations_controller.rb class Users::RegistrationsController < Devise::RegistrationsController before_filter :configure_permitted_parameters protected # my custom fields are :name, :heard_how def configure_permitted_parameters devise_parameter_sanitizer.for(:sign_up) do |u| u.permit(:name, :heard_how, :email, :password, :password_confirmation) end devise_parameter_sanitizer.for(:account_update) do |u| u.permit(:name, :email, :password, :password_confirmation, :current_password) end end end