OdontologicUnity
Rails 3.2では、aUser
が作成されたときにデフォルトのインスタンスを設定しようとしています。
ユーザー:
require "odontological_unity"
class User < ActiveRecord::Base
attr_accessible :odontologic_unity, ...
...
belongs_to :odontologic_unity
after_create :associate_default_unity
private
def associate_default_unity
ou = OdontologicUnity::DEFAULT
ou.save!
self.update_attribute :odontologic_unity, ou
end
end
OdontologicUnity:
# encoding: UTF-8
class OdontologicUnity < ActiveRecord::Base
...
DEFAULT = OdontologicUnity.new(
name: 'Actualiza el nombre',
address: 'Actualiza la dirección',
nit: 'Actualiza el NIT',
mission: "Actualiza la misión",
vision: "Actualiza la visión"
)
end
コードは例外を発生させることなく機能しますが、DBを見ると、次のようになります(odontological_unity_id: nil
):
User Load (0.4ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1 [["id", 9]]
=> #<User id: 9, email: "user2@example.com", password_digest: "$2a$10$BPDmM6stW0sO6tQbwwJCxuWO4hvWIAeSzogEl2GGiqmo...", remember_token: "ltU5RBcifDsr9uPIci9z_A", names: "Example User", lastnames: "Some Lastnames", identity_document_number: "1515", odontological_unity_id: nil, created_at: "2012-06-24 15:00:17", updated_at: "2012-06-24 15:02:05">
奇妙なことに、OdontologicUnity
レコードは実際に作成されますが、ユーザーに関連付けられません。