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