On the Rails Guide, I saw a class was defined as 

```
class Person < ActiveRecord::Base
end

```

and then it wrote 

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

```

Since class Person has no field, why here it is valid to pass a :name attribute to the constructor? Shouldn't there be some error with it? 

Also, why id, name, created\_at all have no colon but :updated\_at has one?