2016-10-27 4 views
0

조직 모델이 있고 "stance"라는 폴더 이름으로 일련의 중첩 모델을 만들었습니다. 이러한 모델 중 하나를 개요라고합니다.레일 - 중첩 된 모델을 연결하는 방법

연관성은 다음과 같습니다

Organisation.rb

has_one :overview 

자세 :: 자세라는 폴더 아래에 중첩되는 입장 리소스에 대한

belongs_to :organisation 

내 컨트롤러 개요.

내 경로는 다음과 같습니다 내 입장에서

namespace :stance do 
    resources :overviews 
    end 

이 부분보기, 나는 개요 테이블에서 속성을 렌더링하기 위해 노력하고 있습니다.

<p><%= @overview.internal_explanation %></p> 
<p><%= @stance.overview.internal_explanation %></p> 
<p><%= @stance::overview.internal_explanation %></p> 

내가 내 조직 쇼에서이 부분 표시 할,하지만 난 개요 테이블에 액세스하는 방법을 알아낼 수 없습니다 :

이 나는 ​​노력했다. 협회에 '자세'에 대한 참조를 추가해야합니까?

는 내가 쓸 필요 콘솔에서 그것을 볼 수 있습니다

o = Stance::Overview.create(internal_explanation: "test") 

하지만 난 코드 자체에서 그것을 사용하는 방법을 볼 수 없습니다. 당신은 표준 명명 규칙을 사용하지 않는 경우

+0

이 코드에서 어떤 오류가 나타 났습니까? –

답변

1

, 당신은 레일에게 몇 가지 힌트를 줄 필요가 :이 has_manybelongs_to에 소스 코드 주석 보는 것입니다 배울 수

has_one :overview, class_name: Stance::Overview 

belongs_to :organisation, inverse_of: :overview 

최고의 장소. 주석을 볼 수 있도록 메서드 이름을 CTRL- 클릭하고 보석 코드로 점프 할 수있는 "소스로 이동"/ "선언으로 이동"기능이있는 편집기를 사용하는 것이 좋습니다. 나는 이것을 Ruby를 배울 때 Rubymine을 통해 사용했고 엄청난 도움이되었습니다.

+0

고마워요 매트! – Mel

+0

컨트롤러의 강력한 매개 변수를 허용하려면 무엇인가 특별한 것이 있습니까? 나는 모든 컨트롤러 액션을 'Overview'전에 'Stance ::'를 포함하도록 변경했지만, 이제는 강력한 파라미터에 적합한 설정을 찾을 수 없습니다. 오류 메시지 : param이 없거나 값이 비어 있음 : 개요 params를 다음과 같이 쓸 때 : def overview_params params.require (: overview) .permit (: internal_explanation, : external_explanation) end – Mel

+0

모든 컨트롤러 코드를 보지 않고 무엇을 의미하는지. 이와 같은 사운드는 별도의 질문으로 게시 할 수 있으며 여기에 모든 정보를 표시 할 수 있으며 오류 메시지도 표시 할 수 있습니다. –