has_many-belogs_to 관계로 작성된 메소드에 액세스하려고하면 정의되지 않은 메소드 오류가 발생합니다.has_many 및 belongs_to 관계로 생성시 정의되지 않은 메소드
local.rb (모델) :
이class Local < ActiveRecord::Base
has_many :foods, dependent: :destroy, :foreign_key => 'local_id'
end
food.rb :
class Food < ActiveRecord::Base
attr_accessible :descrizione, :nome, :prezzo, :voto
belongs_to :local, :foreign_key => 'local_id'
end
/locals/show.html.erb보기는 호출 여기에 코드 (semplified)입니다 foodsController에 대한 조치를 만듭니다
...
<%= form_for :food, :url => {:controller => :foods, :action => :create} do |f| %>
...
<% end %>
foods_controller.rb
class FoodsController < ApplicationController
def create
@food = @local.foods.build(params[:food])
end
end
여기 food_controller에서 문제가 제기되었습니다. "undefined method 'foods' '. 왜? 관계는 local.foods 메소드를 가능하게해야합니까? (@local은 locals_controller.rb, @local = Local.find (params [: id])에 정의되어 있으며 local_id 특성은 schema.rb에 정의되어 있으며 마지막 db 마이그레이션에는 명확하게 정의되어 있습니다)
고맙습니다.
자세한 내용을 제공해 주시겠습니까? @local이 nil이라고 말하는 것입니까? – davidrac
@local이 nil이 아니므로 필요한 다른 세부 정보를 말해주십시오 – bugman
@local은 다른 컨트롤러에 정의되어 있으므로 FoodController에서 액세스 할 수 없습니까? – elevine