当前位置: 首页 > 知识库问答 >
问题:

设计中未定义的方法“名称”-添加自定义字段

那弘
2023-03-14

我正在尝试将字段“name”添加到 Devise,但是当我注册一个新用户时,当我推送提交时它会中断。

我已确保运行< code>rake db:migrate并重新启动了我的服务器,但我得到了以下错误:

ActiveRecord::StatementInvalid in Devise::RegistrationsController#create

NoMethodError: nil:NilClass 的未定义方法“name”: 插入到“用户”(“created_at”、“current_sign_in_at”、“current_sign_in_ip”、“电子邮件”、“encrypted_password”、“last_sign_in_at”、“last_sign_in_ip”、“名称”、“pic_file_name”、“remember_created_at”、“reset_password_sent_at”、“reset_password_token”、“sign_in_count”、“标题”、“updated_at”) 价值($ 1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15) 返回“ID”

用户类别

  class User < ActiveRecord::Base
  has_and_belongs_to_many :roles

    devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable

    attr_accessible :email, :password, :password_confirmation, :remember_me, :role_ids, :name, :title, :pic_file_name
    has_one :picture, :dependent => :destroy
    accepts_nested_attributes_for :picture, :allow_destroy => true
    has_many :comments, :dependent => :destroy
    has_many :discussions, :dependent => :destroy



    def role?(role)
      roles.map(&:name).include? role.to_s
    end

  end

模式

  create_table "users", :force => true do |t|
t.string   "email",                  :default => "", :null => false
t.string   "encrypted_password",     :default => "", :null => false
t.string   "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.integer  "sign_in_count",          :default => 0
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.string   "current_sign_in_ip"
t.string   "last_sign_in_ip"
t.datetime "created_at",                             :null => false
t.datetime "updated_at",                             :null => false
t.string   "name"
t.string   "title"
t.string   "pic_file_name"
  end

新的注册视图

<%= simple_form_for(resource, :as => resource_name, :html => { :multipart => true }, :html => { :class => 'form-horizontal' }, :url => registration_path(resource_name)) do |f| %>
  <%= f.error_notification %>
  <div class="row">
    <div class="span12 rounded-corners shadow inputs registration">
      <div class="row">
        <div class="span6">
          <h1>Join the Club</h1>
            <%= f.input :email, :required => true, :autofocus => true, :input_html => { :class => "span4" } %>
            <%= f.input :password, :required => true, :input_html => { :class => "span4" } %>
            <%= f.input :password_confirmation, :required => true, :input_html => { :class => "span4" } %>
            <%= f.input :name, :required => true, :input_html => { :class => "span4" } %>

            <%= f.input :title, :required => true, :input_html => { :class => "span4" } %>
            <%= f.input :pic_file_name, :as => :file, :label => "Upload Profile Picture", :required => true %>
        </div>
        <div class="span6 .hidden-phone ">
          <%= image_tag "signup.png", :class => "rounded-corners shadow signup_pic" %>
        </div>
      </div>




      <div class="row">
        <div class="signup_actions span3">
          <%= f.button :submit, "Sign up", :class => 'btn-warning btn-large' %></br >
          <%= render "links" %>
        </div>
      </div>

    <% end %>

  </div>

共有1个答案

薄兴昌
2023-03-14

在用户类中,将名称放在attr_accessible:之后。

 类似资料:
  • 我必须将自定义方法方法添加到我的日志系统中。假设我有几行代码,例如: 日志记录由slf4j处理。如何通过添加新(!)扩展我的记录器方法,如public void error(SomeTypeObject obj){/implementation/} 目标是不更改现有代码。如何强制LoggerFactory返回使用上述方法扩展的自己的记录器实现? 我跟踪了这个问题的答案:stackoverflow.

  • 问题内容: 为什么这样的结构 给一个错误? 问题答案: 默认参数值在函数定义时评估,但仅在函数调用时可用。因此,参数列表中的参数不能相互引用。 将参数默认为默认值并在代码中为此添加测试是一种常见的模式:

  • 问题内容: 我正在尝试在python3中编写一个简单的递归函数。在学习OO Java时,我还想编写涉及对象的Python代码。这是我的下面的代码。我提示用户输入一个数字,屏幕应该显示每个小到5的整数。 但是,当我在终端上运行它时,它说:“ NameError:未定义名称’recursive’”。错误如下所示: 是什么导致问题出在这里?我知道如何编写递归函数,给它一个参数,然后使其在终端上运行。但是

  • 我正在做hazelcast监控服务,我需要为每个集群成员添加客户名称,以了解哪个模块不在集群中。 我想要成员的常量名称,而不是 这能做到吗?

  • 大家好,我刚刚遇到了这个问题,我正在学习教程,我试图在我的文章和类别之间创建多对多关联,所以我通过键入以下内容添加了article\u类别模型: 在这个模型里面我输入了 内部文章。rb: 和内部类别。rb: 所以我去了控制台:通过输入以下内容进行关联: 我检查了文章。类别 我也试了分类 结果是: 所以我试图通过输入以下内容使这篇文章成为此类文章的一部分: 所以我得到了这个错误: 这是错误,伙计们,

  • 问题内容: 我是Elastic Search的新手,正在尝试使用Spring-data-elasticsearch实施它。 在我们的elasticsearch文档中,我具有诸如“运输”,“ Telephone_Number”之类的名称的字段。 当我尝试用它们映射我的@Domain对象字段时,由于无法成功映射那些字段,所以我没有得到任何数据。 试图使用@Field感到失望,因为它没有’name’属性