我有一个名为Category
的模型,其中包含用于对产品进行分类的类别。其中一个类别称为Experiences
。在特定查询中,我希望将其从Experiences
修改为Experiences *
以用于显示目的。
我尝试通过地图执行此操作,但我为Experiences
获取了空白值。
这是我的代码:
def self.with_exp_star
Category.all.map { |element|
if element.name == "Experiences"
element.name = "Experiences *"
else
element
end
}
end
有什么想法吗?
答案 0 :(得分:1)
好吧,当element.name == "Experiences"
将element.name
推送到结果数组时,除了element
对象,否则你应该以两种方式返回element
:
Category.all.map { |element|
element.name += ' *' if element.name == 'Experiences'
element
}
答案 1 :(得分:0)
如果您向上使用rails 3,则可以使用update_all链接查询,如下所示:
Categories.where(:name => "Experiences).update_all(:name => "Experiences *")