我開始學習Ruby和Rails,有時會發現「Convention over Configuration」類型的查殺...Rails如何解析模型屬性,因爲它們未在模型中定義?
好吧,我通過Rails命令在Rails中創建了User
模型。 User
模型也創建了一些屬性,如name
和age
。
但是當我打開user.rb
:
class User < ApplicationRecord
end
它只有這些。我找不到attr_accessor
。所以我繼續搜索,發現屬性名稱和方法保存在某個地方,所以基本上我仍然可以照常創建對象並引用屬性user.name
和user.age
。
我的問題是,Rails中保存的屬性在哪裏?這是怎麼發生的?我不認爲該屬性保持在超ApplicationRecord
過,我打開application_record.rb
:
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
end
那麼,是那些屬性保存?以及Ruby如何解決這樣的屬性?我想知道背後的機制。