我有一個RoR應用程序(開發中)。我有基於sql視圖的模型。如何在rails中安全地覆蓋保存方法?
但是,我想創建&更新thoses模型。它們通過2個表(通用設計模式,這就是爲什麼我使用sql視圖)存儲在數據庫中。
我聽說過諸如before_save之類的鉤子,但如here所述,仍然存在保存或更新before_save
回調中的其他對象的問題。
所以,我想知道如何安全地重寫軌道中的保存方法?
歡迎任何建議。
感謝
編輯:
:我看來
CREATE VIEW my_objects AS SELECT o.* , at.value as "column1", FROM Generic_object o LEFT JOIN (SELECT at.* FROM Another_table at ON at.genreic_object_id = o.id AND at.name = "param1")
這導致從我的普通表中的 「重建」 對象,然後從另一個表中的一些列的SQL
o.col1,o.col2,...,at.param1
如果我的對象有幾個參數我要重新加入另一個表,這樣
LEFT JOIN(SELECT AT2。* FROM Another_table AT2 ON at2.generic_object_id = o.id AND at2.name = 「參數2」)
然後,我得到這個對象:
o.col1,o.col2,...,at.param1,at2.param2
這似乎很少(奇怪? :p),但這種模式是我的約束.... :(
好吧,我已經嘗試過這個解決方案。 當sav e(沒有功能)被觸發,它引發了一個異常(我正在使用sql view basde模型)。 我可以存儲另一個對象來保存基於sql視圖模型的方法嗎? – foxpowa