3

次のモデルと関連付けがあります。

class JuridicalPerson < ActiveRecord::Base
end

class Supplier < ActiveRecord::Base
  belongs_to :juridical_person
  delegate  :company_name, :company_name=, :to => jurirical_person
end

コントローラーは次のとおりです。

def new
  @supplier = Supplier.new                                                                                                                                                 

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

スキーマは次のようになります。

create_table "suppliers", :force => true do |t|
  t.integer  "juridical_person_id"
  ...
end

create_table "juridical_people", :force => true do |t|
  t.string   "company_name"
  ...
end

ビューでレンダリングしようとすると、次のエラーが発生します。

Supplier#company_name は juridical_person.company_name に委任されましたが、juridical_person は nil: #(Supplier id: nil, juridical_person_id: nil, created_at: nil, updated_at: nil)

抽出されたソース (9 行目あたり):

8:       <%= f.label :company_name, "Company Name" %>
9:       <%= f.text_field :company_name %>

関連する juridical_person が委任時に作成されていないようですが、理由がわかりません。コントローラーで作成しても同じ理由で更新しようとするとアプリが壊れてしまいます。私は何が欠けていますか?

4

2 に答える 2

0
class JuridicalPerson < ActiveRecord::Base
    has_many :suppliers
end
于 2012-09-17T07:24:11.037 に答える
0

=変更を削除

delegate  :company_name, :company_name=, :to => jurirical_person

delegate  :company_name, :company_name, :to => jurirical_person
于 2012-09-17T05:42:36.063 に答える