我已经阅读了文档,但我仍然无法理解语法/格式。
我在rails中很新。我的模型中有这个:
attr_accessible :email, :username
由于rails 4.0的更改,需要将其移至我的控制器。
如果我把它放在我的控制器中它是否正确(这是我认为文档说要做的但不确定我是否正确解释):
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) << :username
end
对我这样的事情更有意义,我可以这样做吗?:
protected
def permitted_paramters
params.require(:username, :email).permit(:username, :email)
end
任何建议表示赞赏,谢谢。
答案 0 :(得分:0)
虽然像控制器中的其他地方一样params.require
更有意义,但是你不能在这里使用Devise,因为:
permitted_parameters
)这就是为什么你需要使用Devise的devise_parameter_sanitizer
并确保只有在devise_controller?
时才应用它。
作为旁注,在你的第二个例子中:
params.require(:username, :email).permit(:username, :email)
require
方法不应该使用属性列表,而应该使用属性分组的名称。在不同的控制器上,它应该是这样的:
params.require(:user).permit(:username, :email)
这将允许以下参数:user[username]=Joe&user[email]=joe@example.org