Это действительно ставит меня в тупик. Процесс работает нормально, если я использую #new
, а затем #save
, но #create
возвращает экземпляр модели со всеми полями, установленными на nil
.
например:
Неожиданное поведение:
ruby-1.9.2-p0 > EmailDefault.create(:description=>"hi")
=> #<EmailDefault id: nil, description: nil, created_at: nil, updated_at: nil>
Ожидаемое поведение:
ruby-1.9.2-p0 > e = EmailDefault.new
=> #<EmailDefault id: nil, description: nil, created_at: nil, updated_at: nil>
ruby-1.9.2-p0 > e.description = "hi"
=> "hi"
ruby-1.9.2-p0 > e.save
=> true
ruby-1.9.2-p0 > EmailDefault.last
=> #<EmailDefault id: 4, description: "hi", created_at: "2011-02-27 22:25:33", updated_at: "2011-02-27 22:25:33">
Что я делаю не так?
- update--
Оказывается, я неправильно использовал attr_accessor
. Я хотел добавить некоторые атрибуты, не связанные с базой данных, поэтому я сделал это с помощью:
attr_accessible :example_to, :cc_comments
, что неправильно, и вызвало ситуацию, упомянутую @Heikki. Что мне нужно сделать, это:
attr_accessor :example_to, :cc_comments