首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为Devise中的`User`添加name属性

为Devise中的`User`添加name属性
EN

Stack Overflow用户
提问于 2011-08-17 06:09:01
回答 7查看 15.6K关注 0票数 25

我正在尝试向Devise提供的用户模型添加一个name属性。我在数据库中添加了一个"name“列,并更改了注册视图,使其要求输入用户名:

代码语言:javascript
复制
<h2>Sign up</h2>

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
  <%= devise_error_messages! %>

  <p><%= f.label :name %><br />
  <%= f.text_field :name %></p>

  <p><%= f.label :email %><br />
  <%= f.email_field :email %></p>

  <p><%= f.label :password %><br />
  <%= f.password_field :password %></p>

  <p><%= f.label :password_confirmation %><br />
  <%= f.password_field :password_confirmation %></p>

  <p><%= f.submit "Sign up" %></p>
<% end %>

<%= render :partial => "devise/shared/links" %>

它允许我登录,但是当我这样做之后检查数据库时,name: nil。我是否必须添加一些东西到Devise的User控制器或其他东西?谢谢!

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-08-17 06:29:31

Rails 3

在你用户模型中定位;

代码语言:javascript
复制
 attr_accessible :email, :password, :password_confirmation, :remember_me

和添加:名称在末尾

票数 19
EN

Stack Overflow用户

发布于 2017-05-27 02:06:05

Rails 5(实际上是设计4)

测试对象: rails 5.1.0 (devise 4.2.1)

不需要使用devise控制器。

只需将以下内容添加到您的application_controller.rb

代码语言:javascript
复制
before_action :configure_permitted_parameters, if:  :devise_controller?


protected

  def configure_permitted_parameters

    devise_parameter_sanitizer.permit(:sign_up, keys: [:name])

  end

devise_parameter_sanitizer.for不再适用于Rails5(更准确地说,Devise4不支持它,它是Rails5上下文中预期的devise版本):使用devise_parameter_sanitizer.permit来避免undefined method 'for' for #<Devise::ParameterSanitizer错误

票数 13
EN

Stack Overflow用户

发布于 2014-02-25 06:57:40

对于Rails 4

像这样使用

代码语言:javascript
复制
protected
def configure_permitted_parameters
  devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:username, :email, :password, :password_confirmation, :remember_me) }
  devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:login, :username, :email, :password, :remember_me) }
  devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:username, :email, :password, :password_confirmation, :current_password) }
end

在末尾添加其他字段。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7085669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档