2012-05-14 46 views
2

我有一個模型「類別」與字段:名稱,主頁。 接下來,我想獲得的所有記錄:如何在RoR中添加額外的臨時參數進行建模?

類別= Category.all

而且我想添加一個額外的臨時參數「網址」爲每個記錄。 所以,我想這一點:

類別[0] =的.url 「http://example.com」

提出類別[0]的.url#=>http://example.com

那麼如何添加臨時附加參數? 在此先感謝!

回答

5

您可以將常用的attr_accessor添加到您的模型中。

class Category < ActiveRecord::Base 

    attr_accessor :url 
    # other stuff 

end 
5

如果我理解正確的話,你要當它傳遞給渲染視圖Category對象有一個非數據庫屬性?

您可以添加未存儲在數據庫中的屬性,將它添加到app/models/category.rb

attr_accessor :url 
+0

非常感謝。我想做元編程,但是attr_accessor非常簡單! – Noah

6

如果「臨時」你的意思是不會持久化對象實例的屬性,只是使用attr_accessor就像一個普通的Ruby對象。

0

我永遠搜索這個,我不知道爲什麼這個答案很難找到。這是暫時的,不會在DB堅持,不會被添加到該對象的實際類...

這僅僅是增加一個屬性到這個對象:

@object[:new_attr] = value 

所以,在你的榜樣...

@categories = Category.all 
@categories.each do |cat| 
    cat[:url] = "myUrl" 
end 
+5

錯了。這引發了:ActiveModel :: MissingAttributeError –

相關問題