我正在编写我的学生项目,并使用lovdbyless引擎来实现基本的社交网络功能
我想为照片添加标签支持。我是铁杆新手所以问题是:
是否有正确的步骤?
1.添加迁移,在数据库中使用id和name属性创建'tags'表,并使用带有tag_id和photo_id字段的'tagsphotos'表。
2.为照片的'has_and_belongs_to_many'标签创建模型
3.为照片模型中的标签添加“has_and_belongs_to_many”。
4.现在开始使用控制器中的这些东西。
这个组织有效吗? 非常感谢!
答案 0 :(得分:0)
如果您需要从头开始编写或使用已经开发的宝石,您需要探索Polymorphic Associations
您可以学习acts_as_taggable_on或acts_as_taggable_on_steroids代码。
这是acts_as_taggable_on的migration code作为示例
class ActsAsTaggableOnMigration < ActiveRecord::Migration
def self.up
create_table :tags do |t|
t.column :name, :string
end
create_table :taggings do |t|
t.column :tag_id, :integer
t.column :taggable_id, :integer
t.column :tagger_id, :integer
t.column :tagger_type, :string
# You should make sure that the column created is
# long enough to store the required class names.
t.column :taggable_type, :string
t.column :context, :string
t.column :created_at, :datetime
end
add_index :taggings, :tag_id
add_index :taggings, [:taggable_id, :taggable_type, :context]
end
def self.down
drop_table :taggings
drop_table :tags
end
end