我正在制作一个标签系统,我希望用户能够创建可以有描述的标签。标签属于用户,可以单独创建,也可以与文章一起创建。我希望能够执行类似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
这是做我想做的正确方法吗?
哪些属性必须是可访问的,关联是什么?