Rails 4中的Devise无法更新用户

5
我将一个应用程序升级到了rails 4,一切正常。我可以登录并进入我的编辑页面。我也更新了视图。当使用标准视图时,用户被更新了。但是当我添加例如字段:名称时,在表单中这个字段没有被更新。
我使用的是devise 3.1.1和'protected_attributes'宝石。
我需要在devise或数据库上运行某种更新命令吗?
我已经在这里搜索过,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。

你尝试使用Rails 4强参数方法添加参数来查看是否通过了吗? - trh
在应用控制器中设置强参数已经奏效。上次尝试时并没有成功,但是在我移除了protected_attributes gem并重新启动了服务器后,它就可以工作了 :) - w25x
1个回答

8

如果你想允许额外的参数,可以在你的ApplicationController中使用一个before filter,因为Rails 4将参数过滤从模型移动到控制器。

class ApplicationController < ActionController::Base
  before_filter :configure_permitted_parameters, if: :devise_controller?

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.for(:sign_up) << :name << :surname << :username
    devise_parameter_sanitizer.for(:account_update) << :name << :surname << :username
  end
end

您还可以在此处找到更多相关的IT技术内容。


那个和 devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:username, :email, :password, :password_confirmation) } 之间有什么区别吗? - Un3qual

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接