Ruby on rails 未定义的方法“email';对于#<;用户信息:0xc0ac77c>;

Ruby on rails 未定义的方法“email';对于#<;用户信息:0xc0ac77c>;,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,我在rails中遇到了这个问题。。 上面写着# 我对此进行了多次调试,但无法跟踪错误 这是我的示例代码 user\u infos\u controller.erb class userinfoscocontroller{“fname”=>“das”,“lname”=>“dasa”,“地址”=>“dsasd”,“bday”=>“2015-06-16”} 用户加载(1.2ms)选择“用户”。*从“用户”中选择“用户”。“id”=$1订单由“用户”。“id”ASC限制1[[“id”,3]] (0.2m

我在rails中遇到了这个问题。。 上面写着# 我对此进行了多次调试,但无法跟踪错误

这是我的示例代码

user\u infos\u controller.erb

class userinfoscocontroller
new.html.erb


已阻止此用户保存
拯救
这是针对用户数据库的

class DeviseCreateUsers < ActiveRecord::Migration
  def change
    create_table(:users) do |t|
      ## Database authenticatable
      t.string :email,              null: false, default: ""
      t.string :encrypted_password, null: false, default: ""

      ## Recoverable
      t.string   :reset_password_token
      t.datetime :reset_password_sent_at

      ## Rememberable
      t.datetime :remember_created_at

      ## Trackable
      t.integer  :sign_in_count, default: 0, null: false
      t.datetime :current_sign_in_at
      t.datetime :last_sign_in_at
      t.string   :current_sign_in_ip
      t.string   :last_sign_in_ip

      ## Confirmable
      # t.string   :confirmation_token
      # t.datetime :confirmed_at
      # t.datetime :confirmation_sent_at
      # t.string   :unconfirmed_email # Only if using reconfirmable

      ## Lockable
      # t.integer  :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts
      # t.string   :unlock_token # Only if unlock strategy is :email or :both
      # t.datetime :locked_at


      t.timestamps null: false
    end

    add_index :users, :email,                unique: true
    add_index :users, :reset_password_token, unique: true
    # add_index :users, :confirmation_token,   unique: true
    # add_index :users, :unlock_token,         unique: true
  end
end
classdeveliecCreateUsers
这是用户信息数据库

class CreateUserInfos < ActiveRecord::Migration
  def change
    create_table :user_infos do |t|
      t.string :fname
      t.string :lname
      t.date :bday
      t.string :address

      t.timestamps null: false
    end
  end
end



class AddAttachmentPictureToUserInfos < ActiveRecord::Migration
  def self.up
    change_table :user_infos do |t|
      t.attachment :picture
    end
  end

  def self.down
    remove_attachment :user_infos, :picture
  end
end
class CreateUserInfos
rails控制台

于2015-06-16 13:44:14+0800开始发布127.0.0.1版的“/user_infos”
由UserInfosController处理#创建为HTML
参数:{“utf8”=>“✓", "真实性令牌“=>”ig6pSrP9EV7ivQ3DRG/XPcwSQmr8oRhX+4YUtuxxqn/71ViwodxX06IMaQrzEQOWvOEjohAB1suFhubz0+cAJw=>,“用户信息”=>{“fname”=>“das”,“lname”=>“dasa”,“地址”=>“dsasd”,“bday”=>“2015-06-16”}
用户加载(1.2ms)选择“用户”。*从“用户”中选择“用户”。“id”=$1订单由“用户”。“id”ASC限制1[[“id”,3]]
(0.2ms)开始
(2.8ms)回滚
在148ms内完成500个内部服务器错误(ActiveRecord:14.0ms)
NoMethodError(未定义的#的“email”方法):
app/controllers/user_infos_controller.rb:19:in'create'
Rendered/home/allanprog/.rvm/gems/ruby-2.2.1/gems/actionpack-4.2.1/lib/action\u dispatch/middleware/templates/rescues//u source.erb(20.2ms)
Rendered/home/allanprog/.rvm/gems/ruby-2.2.1/gems/actionpack-4.2.1/lib/action\u dispatch/middleware/templates/rescues//u trace.html.erb(11.9ms)
Rendered/home/allanprog/.rvm/gems/ruby-2.2.1/gems/actionpack-4.2.1/lib/action\u dispatch/middleware/templates/rescues//u request\u and\u response.html.erb(3.8ms)
rescues/layout中的Rendered/home/allanprog/.rvm/gems/ruby-2.2.1/gems/actionpack-4.2.1/lib/action\u dispatch/middleware/templates/rescues/diagnostics.html.erb(108.5ms)
无法使用内容类型multipart/form data呈现控制台允许的内容类型:[#,#,#]
用户模型

class用户
用户信息模型

class UserInfo”}
验证\附件\内容\类型:图片,:内容\类型=>/\Aimage\/.\Z/
结束

我看不出有任何理由得到
NoMethodError(未定义的方法“email”for#)
错误,但我看到的一个问题是:

userinfoscocontroller
create
方法中,您编写了:

@user_info = UserInfo.create(
  user_id: current_user.id,
  fname: params[:user_info][:fname],
  lname: params[:user_info][:lname],
  bday: params[:user_info][:bday],
  address: params[:user_info][:address],
  picture: params[:user_info][:picture])
但是在
class CreateUserInfos < ActiveRecord::Migration
  def change
    create_table :user_infos do |t|
      t.string :fname
      t.string :lname
      t.date :bday
      t.string :address

      t.timestamps null: false
    end
  end
end



class AddAttachmentPictureToUserInfos < ActiveRecord::Migration
  def self.up
    change_table :user_infos do |t|
      t.attachment :picture
    end
  end

  def self.down
    remove_attachment :user_infos, :picture
  end
end
    Started POST "/user_infos" for 127.0.0.1 at 2015-06-16 13:44:14 +0800
Processing by UserInfosController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"ig6pSrP9EV7ivQ3DRG/XPcwSQmr8oRhX+4YUtuxxqn/71ViwodxX06IMaQrzEQOWvOEjohAB1suFhubz0+cAJw==", "user_info"=>{"fname"=>"das", "lname"=>"dasa", "address"=>"dsasd", "bday"=>"2015-06-16"}}
  User Load (1.2ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1  ORDER BY "users"."id" ASC LIMIT 1  [["id", 3]]
   (0.2ms)  BEGIN
   (2.8ms)  ROLLBACK
Completed 500 Internal Server Error in 148ms (ActiveRecord: 14.0ms)

NoMethodError (undefined method `email' for #<UserInfo:0xbcaa624>):
  app/controllers/user_infos_controller.rb:19:in `create'


  Rendered /home/allanprog/.rvm/gems/ruby-2.2.1/gems/actionpack-4.2.1/lib/action_dispatch/middleware/templates/rescues/_source.erb (20.2ms)
  Rendered /home/allanprog/.rvm/gems/ruby-2.2.1/gems/actionpack-4.2.1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (11.9ms)
  Rendered /home/allanprog/.rvm/gems/ruby-2.2.1/gems/actionpack-4.2.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (3.8ms)
  Rendered /home/allanprog/.rvm/gems/ruby-2.2.1/gems/actionpack-4.2.1/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (108.5ms)
Cannot render console with content type multipart/form-dataAllowed content types: [#<Mime::Type:0xa39d5f0 @synonyms=["application/xhtml+xml"], @symbol=:html, @string="text/html">, #<Mime::Type:0xa39d474 @synonyms=[], @symbol=:text, @string="text/plain">, #<Mime::Type:0xa38b65c @synonyms=[], @symbol=:url_encoded_form, @string="application/x-www-form-urlencoded">]
    class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable
  has_many :pins
  has_one :user_info

end
class UserInfo < ActiveRecord::Base
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable
  belongs_to :user

  has_attached_file :picture, styles: { medium: "300x300>" }
  validates_attachment_content_type :picture, :content_type => /\Aimage\/.*\Z/

end
@user_info = UserInfo.create(
  user_id: current_user.id,
  fname: params[:user_info][:fname],
  lname: params[:user_info][:lname],
  bday: params[:user_info][:bday],
  address: params[:user_info][:address],
  picture: params[:user_info][:picture])
class AddUserIdToUserInfos < ActiveRecord::Migration
  def self.up
    change_table :user_infos do |t|
      t.references :user, foreign_key: true, index:true
    end
  end

  def self.down
    t.remove_references(:user)
  end
end
devise :database_authenticatable, :registerable,
       :recoverable, :rememberable, :trackable, :validatable