如何更新Model属性的值

时间:2012-09-08 09:46:49

标签: ruby-on-rails database activerecord

我有一个数据库项目和两个项目。它们的列名为“popular”,我将其设置为0。

class Item < ActiveRecord::Base
  attr_accessible .. :popularity, ..

  before_create :default_values
  def default_values
    if self.popularity.nil? == true || self.popularity.blank? == true || self.popularity.class != Integer
      self.popularity = 0
    end
  end

如何通过code \ console更改此值并保存? 我试过了

  Item.find(1).popularity = 1
  Item.save

但它没有保存我的val。怎么了?

4 个答案:

答案 0 :(得分:9)

这是解决方案

item = Item.find(1)
item.popularity = 1
item.save

答案 1 :(得分:1)

item = Item.first
item.popularity = 1
item.save

答案 2 :(得分:1)

Item.update(1, popularity: 1)
  • 运行验证并保存。

  • 引发不存在的记录。

有关更新属性https://zaiste.net/posts/rails-activerecord-updating-attributes-object-fields/

的更多信息

答案 3 :(得分:0)

另一种单行替代方法:

public ActionResult AccessToken(string authorizationCode)
{
    UserFunctions.AccessToken(authorizationCode);
    List<UserApplications> results = UserFunctions.userApplications;
    var data = from p in results 
           group p by p.AppFormName into g
           select new { AppFormName = g.Key, Questions = g.Select(x=> new { QuestionName = x.QuestionName, QuestionType = x.QuestionType}).ToList() };

    return Json(data , JsonRequestBehavior.AllowGet);
}