我在Rails 4应用程序中添加了Devise,并成功地将用户名等添加到我的用户模型中。此外,我还可以使用延迟方式™来存储这些字段,即
class ApplicationController < ActionController::Base
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:email, :password, :password_confirmation, :firstname, :middlename, :lastname) }
end
end不过,我试过了
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:email, :password, :password_confirmation, :firstname, :middlename, :lastname) }
devise_parameter_sanitizer.for(:edit) { |u| u.permit(:email, :password, :password_confirmation, :firstname, :middlename, :lastname) }
end但这并不像预期的那样起作用(编辑操作调用时没有存储用户名)。我还需要做点什么才能让它发挥作用吗?谢谢!
发布于 2014-04-18 17:20:25
@conciliator关于:account_update这个神奇词是正确的,但是这里是他提到的http://rubydoc.info/github/plataformatec/devise/搜索'devise_parameter_sanitizer‘的文档链接,您将看到以下内容:
Devise中只有三个操作允许将任意一组参数传递给模型,因此需要清理。默认情况下,它们的名称和允许的参数是:
sign_in (Devise::SessionsController#new) - Permits only the authentication keys (like email)
sign_up (Devise::RegistrationsController#create) - Permits authentication keys plus password and password_confirmation
account_update (Devise::RegistrationsController#update) - Permits authentication keys plus password, password_confirmation and current_passwordhttps://stackoverflow.com/questions/19791531
复制相似问题