如何修改模型中某个项的属性

时间:2015-07-14 23:23:28

标签: ruby-on-rails ruby

我有一个名为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

有什么想法吗?

2 个答案:

答案 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 *")