出于某种原因,当我运行下面的seed.rb文件时,'rating'中的food_id字段不会填充。有人可以帮我找出原因吗?
种子文件包含以下行:
Food.create(:id => 1, :description => 'Stonyfield Farm Yomommy 4oz. Strawberry')
OverallRating.create(:score => 0, :count => 1, :food_id => 1)
食物及评级守则如下: class OverallRating<评分 belongs_to:食物 端
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
答案 0 :(得分:0)
你是如何调用seeds.rb文件的?您可能需要执行rake db:seed
答案 1 :(得分:0)
这真的是真正的代码吗?我猜你在Rating / OverallRating中有一个attr_accessible或attr_protected声明阻止在实例化对象中设置该选项。
答案 2 :(得分:0)
不要对id
进行硬编码,而是尝试这样的事情:
food = Food.create(:description => 'blah')
food.create_overall_rating(:score => 0, :count => 1)
我只是尝试了你的确切方法,它对我没有任何问题。所以也许你还有其他的错误。