как добавить данные к базе данных от консоли направляющих

У меня есть a User модель.

>> @u = User.new
=> #<User id: nil, userid: nil, password: nil, created_at: nil, updated_at: nil, user_first_name: nil, user_last_name: nil, user_status: nil, user_type: nil>

Я не могу добавить данные к Users таблица от консоли. Я делаю следующее:

>> @u.userid="test1"
=> "test1"
>> @u.password="test2"
=> "test2"
>> @u.user_first_name="test3"
=> "test3"
>> @u.user_last_name="test4"
=> "test4"
>> @u.user_status="test5"
=> "test5"
>> @u.user_type="test6"
=> "test6"
>> @u.save
NoMethodError: undefined method `userid' for nil:NilClass

что я делаю неправильно? Я просто хочу добавить одну строку данных к приложению.

40
задан rails_guy 22 March 2010 в 01:50
поделиться

3 ответа

Я попытался создать новое приложение rails, и могу сделать следующее:

irb(main):008:0> u= User.new
=> #<User id: nil, name: nil, created_at: nil, updated_at: nil>
irb(main):009:0> u.save
=> true
irb(main):011:0> User.find(3)
=> #<User id: 3, name: nil, created_at: "2010-03-22 11:51:31", updated_at: "2010-03-22 11:51:31">

То же самое работает с create вместо new. Я предполагаю, что ваша модель пользователя хочет иметь отношение к другому объекту, который еще не доступен. Не могли бы вы предоставить свою текущую схему (находится в db / schema.rb)?

Моя выглядит так:

ActiveRecord::Schema.define(:version => 20100322114826) do

  create_table "users", :force => true do |t|
    t.string   "name"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

end
4
ответ дан 27 November 2019 в 01:34
поделиться

Попробуйте проверить, является ли созданный вами экземпляр действительным. Самый простой способ - использовать метод save!...

@u.save!

Это вызовет исключение, если экземпляр не пройдет все проверки, или если будут обнаружены какие-либо другие проблемы. Трассировка стека, надеюсь, даст полезную информацию.

Также, вместо использования @u = ... попробуйте использовать просто u = ...

18
ответ дан 27 November 2019 в 01:34
поделиться
>> u = User.create :userid => "myuserid", :password => "mypasswd", :user_first_name => "test", :user_last_name => "testovich", :user_status => "mystatus", :user_type => "mytype"
53
ответ дан 27 November 2019 в 01:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: