rails 中的实例是什么?
What is an instance in rails?
我有这个型号。我的朋友告诉我的。我应该在 unique/confno 上只有一个 INSTANCE 。 .
这里的实例在哪里?
class Confbridge < ActiveRecord::Base
has_many :confbridge_schedules, :dependent => :destroy
validates :confno, uniqueness: true, :allow_nil => true, :allow_blank => true
:confno => confno, :circle => cid, :confbridge_id => id )
end
以及如何轻松理解实例?
谢谢:)
一个实例通常代表您数据库中的一行 table,但更一般地说,它具有与您的 class 相关的非常具体的含义。
类 和实例是面向对象编程的概念,但也可以出现在其他上下文中。
即使在现实世界中...
假设您有一个名为 'Car'
的 class
一个实例是您现在停在车库中的特定汽车。另一个例子是你邻居的车。
在数据库上下文中,如果你的 class 被称为 'EmployeeRecord' 那么它的一个实例就是包含你的名字和 employee-number 的记录,而不是一个给你的老板。
但在你的情况下,Rails:
您有一个名为 Confbridge
的 class。如果您使用 conf = Confbridge.new
创建一个新的,那么您在变量 conf
中拥有的是 class Confbridge
的一个实例
具体查看您显示的代码 - 您在该代码中没有实例。您在上面显示的是构成 Confbridge
class 的代码 - 从中您可以创建实例,这些实例将具有您在编写 class 时定义的属性(例如,您的每个实例如果您调用 conf.save
)
将验证 confno
是唯一的
简单来说,instance就是某个class的对象。在您的示例中 Confbridge
是一个模型 class。以下都是这个 class 的实例:
Confbridge.new
Confbridge.first
Confbridge.find(1)
一个实例来自Object Orientated Programming(Ruby是其支持者)...
OOP 基本上用 objects 替换了 variables(尽管它们是同一回事)。
两者之间的区别在于,对象被存储为"class"或"function",具有两个属性 和 函数 / 方法 附加到它。
简而言之,可以在应用程序中操纵对象,而变量是静态的。
游戏使用 OOP,因为它允许您在环境中调用一系列对象并与它们交互。
例如Mario,Mario
是一个对象,Koopa
可以是一个对象等等
当您移动时,您正在编辑环境中的 Mario
的 "position" (x
/y
),这也意味着如果坐标与另一个物体相交,马里奥死了...
def keypress
@mario.move x,y
end
class Mario
def move x,y
##updates environment
##checks if collision
end
end
这些对象之间的交互性让游戏看起来像是保留了它们的状态(每个敌人都是一个具有不同特征的对象)。
因此,当您想到Rails
时,您必须意识到您所做的一切都是object-orientated。您所有的变量等都应该是对象。模型负责使用某些 attributes/methods 等构建这些对象:
#app/models/car.rb
class Car < ActiveRecord::Base
def blow_up!
self.destroy
end
end
@car = Car.find params[:id] #-> invokes an instance of the Car object, populating with data from the db
@car.blow_up! #-> invoking the "blow_up!" instance method.
因此,为了描述一个对象的 实例 ,您说的是一个 class,它已经初始化并填充了来自您的数据库的数据。
在您的情况下,当您使用 class methods:
之一调用 class 时,实例出现在您的 Controller
中
@confbridge = Confbridge.find(1) #-> creates an instance
@confbridge.destroy #-> performs action on instance
我有这个型号。我的朋友告诉我的。我应该在 unique/confno 上只有一个 INSTANCE 。 .
这里的实例在哪里?
class Confbridge < ActiveRecord::Base
has_many :confbridge_schedules, :dependent => :destroy
validates :confno, uniqueness: true, :allow_nil => true, :allow_blank => true
:confno => confno, :circle => cid, :confbridge_id => id )
end
以及如何轻松理解实例?
谢谢:)
一个实例通常代表您数据库中的一行 table,但更一般地说,它具有与您的 class 相关的非常具体的含义。
类 和实例是面向对象编程的概念,但也可以出现在其他上下文中。
即使在现实世界中... 假设您有一个名为 'Car'
的 class一个实例是您现在停在车库中的特定汽车。另一个例子是你邻居的车。
在数据库上下文中,如果你的 class 被称为 'EmployeeRecord' 那么它的一个实例就是包含你的名字和 employee-number 的记录,而不是一个给你的老板。
但在你的情况下,Rails:
您有一个名为 Confbridge
的 class。如果您使用 conf = Confbridge.new
创建一个新的,那么您在变量 conf
中拥有的是 class Confbridge
具体查看您显示的代码 - 您在该代码中没有实例。您在上面显示的是构成 Confbridge
class 的代码 - 从中您可以创建实例,这些实例将具有您在编写 class 时定义的属性(例如,您的每个实例如果您调用 conf.save
)
confno
是唯一的
简单来说,instance就是某个class的对象。在您的示例中 Confbridge
是一个模型 class。以下都是这个 class 的实例:
Confbridge.new
Confbridge.first
Confbridge.find(1)
一个实例来自Object Orientated Programming(Ruby是其支持者)...
OOP 基本上用 objects 替换了 variables(尽管它们是同一回事)。
两者之间的区别在于,对象被存储为"class"或"function",具有两个属性 和 函数 / 方法 附加到它。
简而言之,可以在应用程序中操纵对象,而变量是静态的。
游戏使用 OOP,因为它允许您在环境中调用一系列对象并与它们交互。
例如Mario,Mario
是一个对象,Koopa
可以是一个对象等等
当您移动时,您正在编辑环境中的 Mario
的 "position" (x
/y
),这也意味着如果坐标与另一个物体相交,马里奥死了...
def keypress
@mario.move x,y
end
class Mario
def move x,y
##updates environment
##checks if collision
end
end
这些对象之间的交互性让游戏看起来像是保留了它们的状态(每个敌人都是一个具有不同特征的对象)。
因此,当您想到Rails
时,您必须意识到您所做的一切都是object-orientated。您所有的变量等都应该是对象。模型负责使用某些 attributes/methods 等构建这些对象:
#app/models/car.rb
class Car < ActiveRecord::Base
def blow_up!
self.destroy
end
end
@car = Car.find params[:id] #-> invokes an instance of the Car object, populating with data from the db
@car.blow_up! #-> invoking the "blow_up!" instance method.
因此,为了描述一个对象的 实例 ,您说的是一个 class,它已经初始化并填充了来自您的数据库的数据。
在您的情况下,当您使用 class methods:
之一调用 class 时,实例出现在您的Controller
中
@confbridge = Confbridge.find(1) #-> creates an instance
@confbridge.destroy #-> performs action on instance