设计docs表示有三个操作允许将参数传递给模型:: sign_up,:sign_in和:account_update。以下示例(基于他们的文档)表明我使用了之前的过滤器。
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:email, :username, :website, :invitation_code])
end
他们没有明确说明,对其他两个行动的参数进行消毒是一个好主意,或者如果清理其他(非设计)模型参数是个好主意。这是我感到困惑的地方。我应该添加上面的代码,以便它是这样的吗?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:email, :username, :website, :invitation_code])
devise_parameter_sanitizer.permit(:sign_in, keys: [:email, :username, :password])
devise_parameter_sanitizer.permit(:account_update, keys: [:email, :firstname, :lastname, :password, :password_confirmation, :website])
end
另外,我怎么知道参数被转换为哈希?
答案 0 :(得分:1)
您无需清理从未使用过的参数。大概在您的登录信息中(设计为:sign_in
),您只使用username
和password
,因此无需在那里清理任何额外的参数。
如果用户可以在您的编辑表单中更新他/她first_name
,website
等,那么您需要:account_update
参数。