1

プロファイルモデルにhas_oneの関係があるアドバイザモデルがあります。コントローラーには、次のコードを含むプロファイルページがあります。

@advisor = Advisor.includes(:profile).find(current_advisor_user.id)
@advisor.profile ||= AdvisorProfile.new

そのプロファイルページをロードすると、データベースにプロファイル用のレコードが作成されますが、フォームでnilにならないように、初期化するだけです。

4

2 に答える 2

5

私はあなたが欲しいと思います@advisor.build_profile

http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-has_one

association =(associate) —アソシエートオブジェクトを割り当て、主キーを抽出し、それを外部キーとして設定して、アソシエートオブジェクトを保存します

build_association(attributes = {}) —属性でインスタンス化され、外部キーを介してこのオブジェクトにリンクされているが、まだ保存されていない、関連付けられたタイプの新しいオブジェクトを返します。

于 2012-04-18T14:09:51.913 に答える
2

これを試して、

@advisor.build_profile

「属性でインスタンス化され、外部キーを介してこのオブジェクトにリンクされているが、まだ保存されていない、関連付けられたタイプの新しいオブジェクト」が返されます。これを参照してください。

于 2012-04-18T14:09:37.990 に答える