2014-08-27 4 views
-1

Я хочу добавить данные к покупателю в модели пользователя и консоль показывает ошибкуROR ошибка синтаксиса неизвестный атрибут: электронная почта

ActiveRecord::UnknownAttributeError: unknown attribute: email 
    from /home/weare138/.rvm/gems/ruby-2.1.2/gems/activerecord-3.2.19/lib/active_record/attribute_assignment.rb:88:in `block in assign_attributes' 
    from /home/weare138/.rvm/gems/ruby-2.1.2/gems/activerecord-3.2.19/lib/active_record/attribute_assignment.rb:78:in `each' 
    from /home/weare138/.rvm/gems/ruby-2.1.2/gems/activerecord-3.2.19/lib/active_record/attribute_assignment.rb:78:in `assign_attributes' 
    from /home/weare138/.rvm/gems/ruby-2.1.2/gems/activerecord-3.2.19/lib/active_record/base.rb:498:in `initialize' 
    from /home/weare138/.rvm/gems/ruby-2.1.2/gems/activerecord-3.2.19/lib/active_record/persistence.rb:44:in `new' 
    from /home/weare138/.rvm/gems/ruby-2.1.2/gems/activerecord-3.2.19/lib/active_record/persistence.rb:44:in `create' 
    from (irb):8 
    from /home/weare138/.rvm/gems/ruby-2.1.2/gems/railties-3.2.19/lib/rails/commands/console.rb:47:in `start' 
    from /home/weare138/.rvm/gems/ruby-2.1.2/gems/railties-3.2.19/lib/rails/commands/console.rb:8:in `start' 
    from /home/weare138/.rvm/gems/ruby-2.1.2/gems/railties-3.2.19/lib/rails/commands.rb:41:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `<main>' 

пишет вот что

u = User.create(login: "weare138", email: "[email protected]", password: "qwertyqwerty", password_confirmation "qwertyqwerty") 

моя модель пользователя

class User < ActiveRecord::Base 

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

    attr_accessible :login, :email, :password, :password_confirmation, :remember_me 

    has_one :cart 
    has_many :orders 
end 

Вот моя миграция

class CreateUsers < ActiveRecord::Migration 
    def change 
    create_table :users do |t| 
     t.string :login 
     t.string :email 
     t.timestamps 
    end 
    end 
end 
+1

ли ваша таблица пользователей есть столбец электронной почты? – Spyros

+0

Запустили ли вы свою миграцию? –

ответ

1

Проверьте свою БД и убедитесь, что столбец электронной почты находится в разделе Пользователь. Если нет, то создайте миграцию грабли, которая добавит столбец электронной почты пользователю.

1

В основном, ActiveRecord::UnknownAttributeError сообщает вам, что вы пытаетесь создать пользователя с атрибутом, о котором база данных не знает (хотя она определена в вашей модели).

0

Запуск миграция должна решить проблему:

bundle exec rake db:migrate 
+0

не работает – weare138

+0

@ weare138, что не работает, миграция? Можете ли вы дать больше контекста. Можете ли вы перейти на консоль рельсов с помощью «рельсов c» и введите «Пользователь». Вы получите все пользовательские атрибуты. Это поможет решить проблему. –

Смежные вопросы