Polymorphic associations

現在做的一個項目中 project 和 life 分別要對應一個comments
首先在comment表中加入兩列

commentable_id, commentable_type

然后在project和life中分別設計連接關系

project:
has_many :comments, as: :commentable
life:
has_many :comments, as: :commentable

最后在comment中加入一個方法 find_commentable

def find_commentable
  params.each do |name, value|
    if name =~ /(.+)_id$/
      return @commentable = $1.classify.constantize.find(value)
    end
  end
end

=~ 是正則表達式的匹配
$1 為匹配的第一個括號里的值

參考

http://railscasts.com/episodes/154-polymorphic-association?view=asciicast
http://ruby-china.org/topics/2427

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容