0

Railsガイドで、クラスが次のように定義されているのを見ました

class Person < ActiveRecord::Base
end

そしてそれは書いた

>>p = Person.new(:name => "John Doe")
=>#<Person id: nil, name: "John Doe", created_at: nil, :updated_at: nil

クラス Person にはフィールドがないのに、コンストラクターに :name 属性を渡すことが有効なのはなぜでしょうか? 多少の誤差はありませんか?

また、id、name、created_at にはコロンがないのに、:updated_at にはコロンがあるのはなぜですか?

4

2 に答える 2

0

ActiveRecordクラスで定義されたフィールドを表示するには、ファイルを確認する必要がありdb/schema.rbます。これにより、移行によって作成されたフィールドが表示されます。

于 2013-03-08T04:39:14.643 に答える
0

クラスが継承しActiveRecord::Base、ActiveRecords がデータベースを参照して、対応するデータベース テーブルの列に一致する属性を動的に作成するためです。

updated_at列もありません。もう一度よく見てください。それは間違いに違いない。

于 2013-03-08T04:38:52.703 に答える