0

ユーザーがDeviseを使用するRails3.2.3アプリにサインアップすると、組織レコードの作成を試みるafter_createコールバックがトリガーされます。

これcreateが検証に失敗した場合、エラーメッセージを表示するにはどうすればよいですか?deviseコントローラーをオーバーライドする必要がありますか?つまり、エラーはユーザーではなく組織の作成に関連しています(そして、私はかなりバニラなデバイスのユーザーモデルを設定しています)。

私はユーザーモデルで次のようなことをしています:

# after_create callback method
...
    unless new_org_user.save
      errors.add("Warning", "Organisation is invalid" )
    end
...
4

1 に答える 1

0

after_createコールバックでイベントを発生させているため、レコードはすでに正常に作成されているため、フラッシュメッセージは表示されません。

代わりにリレーションアソシエーションに移動して、次のような子の検証を要求しないのはなぜですか

class User < ActiveRecord::Base
  has_one :organization
  accepts_nested_attributes_for :organization
end

class Organization < ActiveRecord::Base
  belongs_to :user
end

このように、組織が有効でない場合、検証に失敗します

于 2012-06-11T18:19:50.930 に答える