2010-11-18 109 views

回答

3

你應該能夠使用delegate通過方法調用另一個對象。

class Article < ActiveRecord::Base 
    has_one :commentable 

    delegate :comments, :to => :commentable 
end 

編輯:

我假設你並不想使用常量文章在你的榜樣,因爲這是行不通的兩種方式。這些方法是實例方法,需要用作:

article = Article.first 

article.commentable.comments 
article.comments (Equivalent to above) 
+0

是的,這就是我一直在尋找的東西。有沒有辦法給別人留言?我的實際模型適合不方便的名稱。那麼我可以製作article.aliased == article.commentable.comments嗎? – Dex 2010-11-18 13:13:30

+0

也許範圍會更好。 – Dex 2010-11-18 13:32:49

+0

@Dex在典型的ruby時尚中,有幾種不同的方式可以將註釋名稱別名。你想爲所有可評論的對象使用相同的別名嗎?或者你想爲每個別名使用唯一的別名? – 2010-11-18 13:43:36