【问题标题】:how to update attributes in self model rails如何更新自我模型导轨中的属性
【发布时间】:2013-10-07 04:30:33
【问题描述】:

如何在 Rails 中更新自身模型?

class BillSubTotal < ActiveRecord::Base
  def self.total
    self.update_attributes(:total => 150)
  end
end

我想从自己的模型中更新模型 BillSubTotal 中的值?

【问题讨论】:

  • self.methods 即使没有实例化对象也可以访问。您希望 update_attributes 如何处理 static 电话?
  • 在我的模型 BillSubTotal 中我想更新自我属性“total”,我该怎么做?

标签: ruby-on-rails activerecord model


【解决方案1】:

取决于你想做什么以及如何去做。

Rails 自动为数据库列创建 getter/setter 方法,因此您不必显式创建该功能,只需像这样设置方法:

class BillSubTotal < ActiveRecord::Base
  def update_total
    self.total = 150
  end
end

或者,如果您直接使用该类的实例:

bill_subtotal_instance.total = 150

【讨论】:

  • 我得到错误总未定义方法?我想用值 150 更新模型 BillSubTotal 中的属性总计我如何从 self.model 更新字段总计中的值?
  • 我想从自己的模型中更新属性,而不是从模型 BillSubTotal 的对象中更新属性
  • 你想在一个类方法中更新什么总数?例如BillSubTotal.total = 150?为什么?你想完成什么?
【解决方案2】:

这是另一种通过模型更新属性的便捷方式。 您必须在创建后调用一个方法,并且在该方法中您可以更新所需的属性。这是代码sn-p。

class MyModel < ActiveRecord::Base

    after_create :insert_default_data

    def insert_default_data
       self.update_attributes!(column_name: value)
    end
 end

这里,insert_default_data 方法将在数据库中保存一条新记录后调用。 我想它会对你有所帮助...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多