【发布时间】:2012-08-14 03:43:03
【问题描述】:
我有 3 个模型:用户、对象、喜欢
目前,我有模型:一个用户有很多对象。我该如何进行建模:
1) 一个用户可以喜欢很多对象
2) 一个对象可以有很多赞(来自不同的用户)
所以我希望能够做这样的事情:
User.likes = 用户喜欢的对象列表
Objects.liked_by = 对象喜欢的用户列表
下面的模型肯定是错的……
class User < ActiveRecord::Base
has_many :objects
has_many :objects, :through => :likes
end
class Likes < ActiveRecord::Base
belongs_to :user
belongs_to :object
end
class Objects < ActiveRecord::Base
belongs_to :users
has_many :users, :through => :likes
end
【问题讨论】:
-
你好像混淆了单复数
-
是的,类名应该是
Like和Object,而不是Likes和Objects。不幸的是,你不能使用Object,因为它已经被Ruby 使用了。你必须想另一个名字。Item什么的。 -
谢谢大家。我的模型现在都是单数的。此外,Object 类仅用于演示目的。我不知道你不能用任何一种方式命名它。感谢您的提示。
标签: ruby-on-rails ruby model