3

我有一个带有字段的模型“类别”:名称、主页。接下来我想获取所有记录:

类别 = Category.all

我想为每条记录添加一个额外的临时参数“url”。所以我想要这个:

类别[0].url = "http://example.com"

puts categories[0].url #=> http://example.com

那么如何添加临时附加参数呢?提前致谢!

4

4 回答 4

8

如果“临时”是指不会被持久化的对象实例属性,则只需attr_accessor像普通的 Ruby 对象一样使用。

于 2012-05-14T11:06:35.243 回答
6

如果我理解正确,您希望Category对象在传递给视图进行渲染时具有非数据库属性?

您可以添加未存储在数据库中的属性,将其添加到app/models/category.rb

attr_accessor :url
于 2012-05-14T11:06:34.767 回答
5

您可以将通常添加attr_accessor到您的模型中。

class Category < ActiveRecord::Base

  attr_accessor :url
  # other stuff

end
于 2012-05-14T11:06:19.747 回答
-1

我一直在寻找这个,我不确定为什么这个答案很难找到。它是临时的,不会保留在数据库中,不会添加到对象的实际类中......

这仅用于向该对象添加属性:

@object[:new_attr] = value

所以在你的例子中......

@categories = Category.all
@categories.each do |cat|
    cat[:url] = "myUrl"
end
于 2013-02-26T19:05:42.460 回答