嗯,我不知道我是否完全錯誤,但我真的找不到一個非常實用而直接的方法來做這樣的事情:rails model:has_many with self arguments(NOT association)
class User < ActiveRecord::Base
has_many :creations
end
但事情是,我只是希望用戶有很多的作品,如果user.developer ==真 其中user.developer只是用戶表內的布爾字段。
因此,有什麼想法可以直接從模型做到?
恢復,當用戶如果試圖得到User.first.creations不是開發商,User.first.creations.new ......創造... ...銷燬等你得到NoMethodError但是如果它是開發人員您可以構建一個新的創作。
我設法做到這一點是擴展模型和擴展檢查,如果proxy_owner.developer ==真但這樣做,我不得不重寫所有的行動,新的創建,更新等的唯一途徑...
任何幫助將不勝感激 非常感謝
這真的是這樣做的方式。經典的應該在繼承中建模的行爲示例。 您需要快速閱讀導軌STI以瞭解如何設置它,它非常簡單。然後你也可以開始做類似Developer.find_blah的事情。 – dalyons 2009-09-01 06:49:39
感謝那些夥伴,事實上我之前做過這個'優秀'的想法,在我的應用中使用較少的模型。我認爲沒有必要爲此創建一個新模型,因爲它非常簡單,所以我開始改變我的觀點。但正如我所看到的,我可能不得不回到這個想法。但有一點可以肯定的是,真正令人感興趣的是,除了創建一個新模型之外,沒有簡單的方法來說:「好吧,我只是希望這個模型有一定的優勢:如果這個模型有這個可能性,那麼這個模型就會失敗」。 – zanona 2009-09-01 08:19:44
我試過這個(http://pastebin.com/f3eb450a3)它在第一次調用時工作,但在第一次生成has_many:apps之後,它將它附加到類中,所以您再也無法覆蓋它了。 但是,感謝您的幫助,非常感謝 – zanona 2009-09-01 08:23:35