在Rails 4下的设计3中自定义用户字段



我使用的是设计3的候选版本,这样我就可以在Rails 4中使用它。在Rails 3.2中,我曾经能够通过简单地将该字段添加到registration/edit.html中来为我的User模型添加自定义字段。动词和注册/new.html。Erb文件(在运行适当的迁移之后)。然后我只需将该字段添加到模型中字段的attr_accessible列表中。

然而,在Rails 4中,没有attr_accessible列表,我不能简单地在视图中添加字段。如何添加自定义User字段?

添加

     def configure_permitted_parameters
         devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:username, :email) }
         devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:username, :email, :password, :password_confirmation) }
         devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:username, :email, :password, :password_confirmation, :current_password) }
     end

我被告知要查看github页面上的主要README,它就在那里。容易。

class ApplicationController < ActionController::Base
  before_filter :configure_permitted_parameters, if: :devise_controller?
  protected
  def configure_permitted_parameters
    devise_parameter_sanitizer.for(:sign_up) << :username
  end
end

如果您希望允许使用其他参数,您可以在

中使用一个简单的before过滤器。

程序控制器:

class ApplicationController < ActionController::Base
  before_filter :configure_permitted_parameters, if: :devise_controller?
  protected
  def configure_permitted_parameters
    devise_parameter_sanitizer.for(:sign_up) << :username
  end
end

您需要为设计启用强参数而不是attr_accessible为此您需要创建新的初始化器,如:

DeviseController.class_eval do
  def resource_params
    unless params[resource_name].blank?
      params.require(resource_name).permit(:email, :password, :password_confirmation, :remember_me)
    end
  end
end

确保你从rails4分支(platformatec/design)克隆了gem。从模型中删除attr_accessible

相关内容

  • 没有找到相关文章

最新更新