在lovdbyless上为照片添加标签

时间:2011-04-06 09:12:54

标签: ruby-on-rails ruby migration

我正在编写我的学生项目,并使用lovdbyless引擎来实现基本的社交网络功能 我想为照片添加标签支持。我是铁杆新手所以问题是:
是否有正确的步骤?
1.添加迁移,在数据库中使用id和name属性创建'tags'表,并使用带有tag_id和photo_id字段的'tagsphotos'表。
2.为照片的'has_and_belongs_to_many'标签创建模型 3.为照片模型中的标签添加“has_and_belongs_to_many”。 4.现在开始使用控制器中的这些东西。

这个组织有效吗? 非常感谢!

1 个答案:

答案 0 :(得分:0)

如果您需要从头开始编写或使用已经开发的宝石,您需要探索Polymorphic Associations

您可以学习acts_as_taggable_onacts_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