-2

중첩 된 리소스에서 ID에 액세스하려면 어떻게해야합니까? @[email protected]에 ID가 people_id가 아닙니다 .i 오류가 Couldn't find People without an ID이됩니다. 미리 감사드립니다.중첩 된 리소스에서 ID를 가져 오는 방법은 무엇입니까?

모델

class City < ActiveRecord::Base 
    has_many :peoples 
    end 

    class People < ActiveRecord::Base 
    belongs_to :city 
    end 

컨트롤러

def show 
    @city = City.find(session[:city_id]) 
    @[email protected] 
    @[email protected](params[:id]) 
    end 

경로

resources :city, :people 
    resources :cities do 
    resources :peoples 
    end 

답변

1

귀하의 오류 메시지가 Deal 모델을 의미한다, 그러나 당신의 예는 City 어린이 People을 의미합니다. 어쨌든 인스턴스가 @Peoples (또는 @city.peoples) 인 경우 ID 속성은 id - people_id이 아니어야합니다.

+0

미안하지만 오타가 카피 붙여 넣기였습니다. 그래요.하지만 문제는 사람 ID가없는 사람을 찾을 수 없다는 것입니다. 이는 사람 인스턴스에 ID가 없으므로 경로와 관련이 있다고 생각하게합니다. – katie

0

나는 당신의 문제가이 라인

@people = @peoples.find(params[:id]) 

당신이 params[:id]을 설정 확신에서 비롯된 생각? 쇼 작업에 어떻게 연결되어 있습니까?

또한 배열 변수라고 생각하면 인스턴스 변수 @peoples에서 찾을 수 있다고 생각하지 않지만 틀릴 수도 있습니다.

관련 문제