我有一个模型“类别”,其中包含字段:名称,主页。 接下来我想获得所有记录:
categories = Category.all
我想为每条记录添加一个额外的临时参数“url”。 所以我想要这个:
categories [0] .url =“http://example.com”
将类别[0] .url#=>放入http://example.com
那么如何添加临时附加参数? 提前谢谢!
答案 0 :(得分:8)
如果“临时”是指不会持久化的对象实例属性,只需像普通的Ruby对象一样使用attr_accessor
。
答案 1 :(得分:6)
如果我理解正确,您希望Category
对象在传递给视图进行渲染时具有非数据库属性?
您可以添加未存储在数据库中的属性,将其添加到app/models/category.rb
:
attr_accessor :url
答案 2 :(得分:5)
您可以在模型中添加常规attr_accessor
。
class Category < ActiveRecord::Base
attr_accessor :url
# other stuff
end
答案 3 :(得分:0)
我永远搜索了这个,我不确定为什么这个答案很难找到。它是临时的,不会在db中持久存在,也不会被添加到对象的实际类中......
这仅适用于向此对象添加属性:
@object[:new_attr] = value
所以在你的例子中......
@categories = Category.all
@categories.each do |cat|
cat[:url] = "myUrl"
end