每当我尝试运行此rake命令时:
@user = User.find("1")
@contest = Contest.find("1")
@user.votes.create(:user => self, :contest => @contest)
我收到此错误:
User(#70104671283680) expected, got Object(#70104612331400)
这是我的User.rb
has_many :votes
accepts_nested_attributes_for :votes
attr_accessible :votes_attributes
这是我的Contest.rb
has_many :votes
这些是我的迁移:
change_table :users do |t|
t.references :votes
end
change_table :contests do |t|
t.references :votes
t.references :contest_items
end
change_table :votes do |t|
t.belongs_to :users
t.belongs_to :contests
end
我是否错误地设置了投票?
答案 0 :(得分:2)
将self
替换为用户,例如@user
。
答案 1 :(得分:1)
用@user取代self,就可以完成这项任务。
理想情况下,你应该这样做。
@user.votes.create(:contest => @contest)
如果正确设置了关联,Rails将在内部处理分配。
在你的情况下它会。
我从导轨指南中获取了这些片段。
@order = @customer.orders.create(:order_date => Time.now)
这是网址