Как я могу назначить пользователей определенным начальным данным?

#ruby-on-rails #ruby-on-rails-3

#ruby-on-rails #ruby-on-rails-3

Вопрос:

В моем файле есть следующие данные seeds.rb :

 users = User.create([
    {
      :email => 'user1@email.com', 
      :password => 'test', 
      :password_confirmation => 'test'
    },
    {
      :email => 'user2@email.com',
      :password => 'test',
      :password_confirmation => 'test'
    }
    ]) 
puts 'Users added'

UserPrice.create([
  {
    # assign user 1
    :product_name => "Great Value Vitamin D Whole Milk",
    :price => '3.81',
    :purchase_date => Date.strptime("08/25/2011", "%m/%d/%Y"),
    :store => "New York"},
  {
    #assign user 2
    :product_name => 'Eggs',
    :price => '2.78',
    :purchase_date => Date.strptime("08/25/2011", "%m/%d/%Y"),
    :store => "New York"
  }
])
puts 'Added Prices'
 

Как мне назначить законных пользователей UserPrices в моем файле seeds.rb?

Примечание: я пытался сделать :user => users.first , но это не сработало.


Рабочий код:

 user1 = User.create(:email => 'user1@email.com', :password => 'qweasd', :password_confirmation => 'qweasd')
user2 = User.create(:email => 'user2@email.com',:password => 'qweasd',:password_confirmation => 'qweasd')

user1.user_prices.create(
    :product_name => "Great Value Vitamin D Whole Milk",
    :price => '3.81',
    :purchase_date => Date.strptime("08/25/2011", "%m/%d/%Y"),
    :store => "New York"
    )
user2.user_prices.create(
    :product_name => 'Eggs',
    :price => '2.78',
    :purchase_date => Date.strptime("08/25/2011", "%m/%d/%Y"),
    :store => "New York"
    )
 

Ответ №1:

Возможно, вы захотите сделать это подробнее в следующих строках:

 user = User.create(#stuff#)
user.user_prices.create(#stuff#)
 

Предполагая отношение has_many.