我有一個模型「類別」與字段:名稱,主頁。 接下來,我想獲得的所有記錄:如何在RoR中添加額外的臨時參數進行建模?
類別= Category.all
而且我想添加一個額外的臨時參數「網址」爲每個記錄。 所以,我想這一點:
類別[0] =的.url 「http://example.com」
提出類別[0]的.url#=>http://example.com
那麼如何添加臨時附加參數? 在此先感謝!
我有一個模型「類別」與字段:名稱,主頁。 接下來,我想獲得的所有記錄:如何在RoR中添加額外的臨時參數進行建模?
類別= Category.all
而且我想添加一個額外的臨時參數「網址」爲每個記錄。 所以,我想這一點:
類別[0] =的.url 「http://example.com」
提出類別[0]的.url#=>http://example.com
那麼如何添加臨時附加參數? 在此先感謝!
您可以將常用的attr_accessor
添加到您的模型中。
class Category < ActiveRecord::Base
attr_accessor :url
# other stuff
end
如果我理解正確的話,你要當它傳遞給渲染視圖Category
對象有一個非數據庫屬性?
您可以添加未存儲在數據庫中的屬性,將它添加到app/models/category.rb
:
attr_accessor :url
如果「臨時」你的意思是不會持久化對象實例的屬性,只是使用attr_accessor
就像一個普通的Ruby對象。
我永遠搜索這個,我不知道爲什麼這個答案很難找到。這是暫時的,不會在DB堅持,不會被添加到該對象的實際類...
這僅僅是增加一個屬性到這個對象:
@object[:new_attr] = value
所以,在你的榜樣...
@categories = Category.all
@categories.each do |cat|
cat[:url] = "myUrl"
end
錯了。這引發了:ActiveModel :: MissingAttributeError –
非常感謝。我想做元編程,但是attr_accessor非常簡單! – Noah