Ruby有很多关联错误

时间:2013-02-22 05:09:49

标签: ruby-on-rails ruby ruby-on-rails-3.1 ruby-on-rails-3.2 associations

每当我尝试运行此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

我是否错误地设置了投票?

2 个答案:

答案 0 :(得分:2)

self替换为用户,例如@user

答案 1 :(得分:1)

用@user取代self,就可以完成这项任务。

理想情况下,你应该这样做。

@user.votes.create(:contest => @contest)

如果正确设置了关联,Rails将在内部处理分配。

在你的情况下它会。

我从导轨指南中获取了这些片段。

@order = @customer.orders.create(:order_date => Time.now)

这是网址

http://guides.rubyonrails.org/association_basics.html