Rails DB Seeding - PullRequest
       8

Rails DB Seeding

0 голосов
/ 08 июля 2010

По какой-то причине поле food_id в «рейтингах» не заполняется при запуске файла seed.rb ниже. Может кто-нибудь помочь мне понять, почему?

Файл семени содержит следующие строки:

Food.create(:id => 1, :description => 'Stonyfield Farm Yomommy 4oz. Strawberry')
OverallRating.create(:score => 0, :count => 1, :food_id => 1)

Код для Пищи и Рейтинг следующие: класс TotalRating <Рейтинг принадлежат: еда конец </p>

class Food < ActiveRecord::Base
   has_one :overall_rating
end

class Rating < ActiveRecord::Base
  belongs_to :food
end

Файл миграции рейтинга выглядит следующим образом:

class CreateRatings < ActiveRecord::Migration
  def self.up
    create_table :ratings do |t|
      t.integer :food_id
      t.integer :count
      t.decimal :score
      t.string :type
      t.timestamps
    end
  end

  def self.down
    drop_table :ratings
  end
end

Ответы [ 3 ]

0 голосов
/ 08 июля 2010

Это действительно актуальный код?Я полагаю, у вас есть объявление attr_accessible или attr_protected в Rating / TotalRating, которое не позволяет установить опцию в экземпляре объекта.

0 голосов
/ 08 июля 2010

Вместо жесткого кодирования id, попробуйте что-то вроде этого:

food = Food.create(:description => 'blah')
food.create_overall_rating(:score => 0, :count => 1)

Я только что попробовал ваш точный метод, и он работал для меня без проблем.Так что, возможно, у вас есть что-то еще не так.

0 голосов
/ 08 июля 2010

как вы вызываете файл seed.rb? Возможно, вам придется сделать rake db:seed

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