0

Rails3.2アプリ内に苦情用のフォームがあり、同時に新しい会社とブランチも構築します。それはすべて正常に機能しますが、会社の ID を Branch テーブルの外部キー company_id として保存したいと考えています。

これは私の苦情管理者です:

def new
    @complaint = Complaint.new
    @complaint.build_company
    @complaint.build_branch(:company_id => '#Trying to set the company ID here')

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @complaint }
    end
  end

:company_id =>上記で作成したオブジェクトの ID を割り当てるには、後に何を配置できますか?

4

3 に答える 3

0

まさにこのようなことではないでしょうか。

@complaint.build_branch(:company_id => @complaint.company_id)
于 2013-03-20T03:13:18.810 に答える
0

解決策は、次のコードを作成アクションに追加することでした

def create
...
@complaint.branch.company = @complaint.company
@complaint.save
...
end
于 2013-03-21T08:46:14.703 に答える
0

この問題は、保存されていない Company オブジェクトと Complaint オブジェクトが原因のようです。モデルの詳細については概説していませんが、おそらく、

@complaint = Compplaint.create(#Whatever parameters are required)
company = @complaint.companies.create()  #Assuming has_many relationship
@complaint.branches.create(:comapny_id => company.id)

create はレコードを保存し、id を生成しますが、build と new はそうではありません。

モデルで has_many :through も探索する必要があります。

于 2013-03-21T03:30:33.660 に答える