「acts_as_commentableプラグイン」の編集履歴(バックアップ)一覧に戻る

acts_as_commentableプラグイン - (2008/10/08 (水) 15:56:33) のソース

**プラグイン名
acts_as_commentableプラグイン

**このプラグインができること
+いろんなモデルにコメント(デフォルトだとタイトルと本文)を付けれる
+ユーザモデルと連動して、
 -特定ユーザがコメントしたコメント一覧
 -特定ユーザがコメントした対象モデル一覧
 -対象モデルへのコメント一覧
を取得可能

**対象バージョン
1.2系 2.0系 2.1系

**ちょー簡単な使い方
>script/plugin install http://juixe.com/svn/acts_as_commentable
でインストールして、マイグレーションしてから
>class Post < ActiveRecord::Base
>  acts_as_commentable
>end
ARにacts_as_commentable入れて
> post.comments << Comment.new(:title => titleStr, :comment => commentStr) #コメント追加
> post.comments #全コメント
> comments = Comment.find_comments_by_user(userInstance) #特定ユーザのコメント一覧
> postComments = Post.find_comments_by_user(userInstance) #特定ユーザがコメントしたモデル一覧
で幸せに。

**公式ページ
[[Juixe TechKnow » Acts As Commentable Plugin>>http://www.juixe.com/techknow/index.php/2006/06/18/acts-as-commentable-plugin/]]
※いや、公式かどうかはわからない

**日本語解説ページ
-見つからない

**外国語解説ページ
-良いところがない

**のうはう
-Commentモデルは、このプラグインに付いてくるので、作らなくて良い
-このデフォルトのCommentモデルには、Userモデルへの関連が付いているので、ユーザ情報管理モデルはUserが好ましい。
-プラグインの中のモジュールを読めば解るが、commentsテーブルにはuser_idカラムがあるものの、Userモデルからhas_manyで関連づけする必要はない。ユーザで絞り込みたければ、Comment.find_comments_by_user()で絞り込むので、Userモデル側にhas_manyは使えなくても問題無いということ。
-マイグレーションファイルの構造を載せておく
>  class AddRatingTables < ActiveRecord::Migration
>    def self.up
>      create_table :comments, :force => true do |t|
>        t.column :title, :string, :limit => 50, :default => ""
>        t.column :comment, :string, :default => ""
>        t.column :created_at, :datetime, :null => false
>        t.column :commentable_id, :integer, :default => 0, :null => false
>        t.column :commentable_type, :string, :limit => 15,
>          :default => "", :null => false
>        t.column :user_id, :integer, :default => 0, :null => false
>      end
>      add_index :comments, ["user_id"], :name => "fk_comments_user"
>    end
>    def self.down
>      drop_table :comments
>    end
>  end
#image(http://farm4.static.flickr.com/3137/2780685717_42b51ba69a.jpg)
[[WWW SQL Designerファイル>http://www13.atwiki.jp/maimuzo?cmd=upload&act=open&pageid=46&file=acts_as_commentable.xml]]

**コメント
#pcomment(reply)