次のモデルと関連付けがあります。
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 が委任時に作成されていないようですが、理由がわかりません。コントローラーで作成しても同じ理由で更新しようとするとアプリが壊れてしまいます。私は何が欠けていますか?