рельсы: данные рейка - PullRequest
       1

рельсы: данные рейка

0 голосов
/ 23 января 2011

У меня много пользователей, у которых есть теги, и много постов с тегами.

Я хочу автоматически заполнить свою базу данных при запуске rake db: populate.Это мой код в lib / tasks:

def make_tags
   User.all.each do |user|
      5.times do |n|
        name = Faker::Company.bs
        user.tags.create!(:name => name)
      end

    end  
   Micropost.all.each do |micropost|
      3.times do |n|
        name = Faker::Company.bs
        micropost.tags.create!(:name => name)
      end
   end  

Однако проблема в том, что пользователи и посты не используют одни и те же теги, потому что каждый раз создается новый тег.Есть ли способ ссылаться на ранее созданные теги по их идентификаторам и чтобы я не создавал новые теги каждый раз?

Ответы [ 2 ]

1 голос
/ 23 января 2011

Думаю, я бы использовал что-то вроде этого:

User.all.each do |user|
  5.times do |n|
    name = Faker::Company.bs
    micropost = Micropost.find(:first, :offset => rand(Micropost.count))
    user.tags.create!(:name => name, :micropost => micropost)
  end
end

Это делает то, что тебе нужно? Это демо / тестовые данные, верно?

0 голосов
/ 23 января 2011

Ваш микросообщение связано с пользователем? Если это так, используйте эту связь, чтобы установить теги для обоих.

Если нет, перегруппируйте свой код, сгенерируйте тег, затем свяжите этот же тег с пользователем и с микросообщением. Или сначала пометьте пользователей, а затем переберите пользователей и поместите теги пользователей в микросообщения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...