2013-04-08 2 views
4

나는 다형성 Review 모델을 가지고있다. 이름 공간 모델 User::Library::Publication은 검토 할 수 있습니다. 리뷰가 제대로 작성되었지만 부분적으로 표시하려고하면 Rails가 잘못된 디렉토리를 찾습니다. 내보기에서레일즈가 잘못된 디렉토리에서 부분을 찾고있다

:

<%= render @review %> 

이 오류를 얻을 :

Missing partial user/library/reviews/review with {:locale=>[:en], :formats=>[:js, :html], :handlers=>[:erb, :builder]} 

레일 분명히 네임 스페이스의 디렉토리 views/user/library 대신 /views/reviews 내에서 부분적인 검토를 찾고 있습니다. 왜 이런 일이 일어나는 지 아십니까?

+1

우리는 당신의 질문을 이해합니다. 당신은 그것을 어디에서 볼 것으로 예상 했습니까? –

+0

'/ views/reviews/_review.html.erb'에 있습니다. – nullnullnull

+0

컨트롤러 이름 공간도 맞습니까? –

답변

0

네임 스페이스를 사용하는 경우 Rails가 잘못된 위치를 찾지 않도록 폴더/하위 폴더를 만들어야합니다. 당신이 부분 경로를 강제하려면

바로 사용 : 당신이 부분 템플릿 경로에서의 네임 제거하려면 _review.html.erb

+0

간단히': partial => "review"렌더링은 그 속임수를하지 않는 것 같습니다. 나는 단지 매우 특이 할 때만 성공할 수있다.'render : partial => "/ reviews/review", : locals => {: review => @review}' – nullnullnull

+0

방향,하지만 내 대답이 정확하지 않다고 추정하면 ... – ZedTuX

3

review.html.erb 파일의 이름을 변경

render :partial => "review" 

그리고 생성, 당신은을 설정할 수 있습니다 당신의 config/application.rb에서 prefix_partial_path_with_controller_namespace 변수 :

# config/application.rb 
config.action_view.prefix_partial_path_with_controller_namespace = false 

것은이 부분로드 경로를 정의 할 때 (네임 스페이스 제외).

see the original Pull Request here 수 있습니다.

관련 문제