Ruby on rails 如何创建不需要存储在数据库中的类/对象?

Ruby on rails 如何创建不需要存储在数据库中的类/对象?,ruby-on-rails,Ruby On Rails,创建一个不扩展ActiveRecord的模型是这样做的吗?e、 g class Shipment end 如果我这样做,我是否需要定义属性,或者我可以简单地执行以下操作: shipment = Shipment.new shipment.weight = 7 是的,您可以通过在应用程序中创建类来创建非活动记录模型 您仍然需要定义您希望它具有的类的属性,就像任何其他类一样 Ryan Bates在以下网站上有一个关于该主题的短片: 通常在OOP中,您可以定义一个类,继承是一个选项 在Rails

创建一个不扩展ActiveRecord的模型是这样做的吗?e、 g

class Shipment
end
如果我这样做,我是否需要定义属性,或者我可以简单地执行以下操作:

shipment = Shipment.new
shipment.weight = 7

是的,您可以通过在应用程序中创建类来创建非活动记录模型

您仍然需要定义您希望它具有的类的属性,就像任何其他类一样

Ryan Bates在以下网站上有一个关于该主题的短片:

通常在OOP中,您可以定义一个类,继承是一个选项

在Rails ruby中,您可以定义一个类,而无需扩展ActiveRecord

因此:

class Shipment
end
是一个有效的ruby类,您可以使用shipping=shipping.new从中启动一个对象

但是,如果您尝试:

shipment.weight = 7
你会得到未定义的装运方法“重量”,这是有意义的,对吗?因为您从未定义过为装运类设置重量属性的方法

您应该定义一个权重设置器或getter,或者两者兼而有之,ruby使其非常容易做到:

class Shipment
  attr_accessor :weight
end
这相当于:

class Shipment
  #getter
  def weight
    #return the weight
    @weight
  end

  #setter
  def weight=(weight)
    #set the weight
    @weight = weight
  end
end
阅读链接: Ruby文档 这解释了setter和getter如何在ruby中工作 这两个答案都有助于理解ruby类和属性
谢谢你的详细介绍!不客气,我刚才也有同样的问题