我正在创建一个Tag系统,我希望用户能够创建可以包含描述的标签。标签属于用户,可以单独创建,也可以与文章一起创建。我希望能够执行Tag.users
或Tag.articles
之类的操作来查看属于标记的所有文章或用户。以下是我到目前为止的情况:
class User < ActiveRecord::Base
attr_accessible # Devise
has_many :taggings
has_many :articles
has_many :tags
# Table - using Devise
end
class Tag < ActiveRecord::Base
attr_accessible :name, :description
has_many :taggings
has_many :articles, through: :taggings
belongs_to :article
# Table - user_id, article_id, name, description
end
class Article < ActiveRecord::Base
attr_accessible :name, :content, :published_on
has_many :taggings
has_many :tags, through: :taggings
belongs_to :user
# Table - user_id, name, content, published_on
end
class Tagging < ActiveRecord::Base
belongs_to :tag
belongs_to :article
belongs_to :user
# Table - user_id, tag_id, article_id
end
这是做我想要的正确方法吗?
必须访问哪些属性以及哪些关联?