interchangeably...but似乎使用了“属性”和“列”这两个术语,我的猜测是,列是方框,属性是进入框的内容。
发布于 2017-07-07 09:52:02
“列”是数据库表中的列,而“属性”是对象的外部可见面。
“属性”表示模型,“列”表示数据库中的表。
下面是一个模型的模式:
create_table "retreats", force: :cascade do |t|
t.string "title"
t.string "tagline"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end这里,"retreats“是数据库中的一个表,其列为"title”、"tagline“、"created_at”、"updated_at“。
这个表有一个模型退出,它有属性"title“、"tagline”、"created_at“和"updated_at”。您可以在这页面上获得有关属性的更多信息。
他们是相似的,但他们是不同的,因为他们的背景。
编辑1:
数据库表中的一行由Rails中的对象映射。该对象的属性值是该行中列的值。
作为沃吉奇指出,列包含所有对象的属性值。
发布于 2017-07-07 10:03:10
为了方便起见,ActiveModel提供了一个attributes API,它将实例变量映射到哈希以便于使用。https://blog.metova.com/rails-5-attributes-api
ActiveRecord在ActiveModel上进行扩展,将columns自动映射到attributes上,并且您仍然可以定义没有列的自定义属性,如本示例所示。http://api.rubyonrails.org/classes/ActiveRecord/Attributes/ClassMethods.html
因此,在标准的Rails应用程序中,ActiveRecord模型会自动将列转换为属性,并且仍然可以添加自己的列。您还可以拥有额外的ActiveModels,它们有自己的持久性机制(或不使用),它们使用相同的属性API,这样标准的Rails组件就可以假装它像一个ActiveRecord。
发布于 2022-01-31 14:16:45
我希望这有助于:

来自: Peter Bruce,Andrew Bruce,Peter Gedeck -数据科学家的实用统计-使用R和Python‘’Reilly媒体的50+基本概念(2020)
https://stackoverflow.com/questions/44967718
复制相似问题