2013-01-03 58 views
2

使用ActiveRecord和JRuby,我嘗試調用數據庫上的存儲過程。使用底層的Java庫我已經達到了一個點,在那裏我有一個散列,在select中指定了列。如何手動實例化ActiveRecord截斷的對象?

現在我想使用這個散列有ActiveRecord模型,但我希望他們看起來像如果我做了一個經典Model.select(列).all(只有列值,錯誤時嘗試到達其他人並只讀)。

必須有AR的內在的東西要做到這一點,但我無法找到任何東西,我所有的搜索導致所有基本的「獲取」教程...

+2

發表你的嘗試! –

+0

@NicolasBlanco 那麼現在我還沒有嘗試過很多。我有一個像{'id'=> 4,'name'=>'Foo','some_column'=>'Bar'}的哈希,所以我所做的只是MyModel.new(哈希).readonly !. 這不是一個理想的解決方案,因爲我用其默認值定義了所有其他列,如果我的存儲過程返回的計算值不匹配。 我有一種感覺,我的答案是圍繞ActiveRecord的#instantiate方法,但我找不到任何有關它的文檔... –

回答

0

行,所以我一直在Rails代碼和挖掘想通了我的答案是實例化方法。

的想法是,如果你是一個名爲爲MyModel模型內做到這一點

object = instantiate(value1: 1, value2: 'ok') 

你將與論文的爲MyModel類的實例的屬性來定義。如果模型應該有更多的列,他們沒有定義。該對象是隻讀的。