2016-08-19 2 views
0

헬퍼 파일을 사용하는 방법을 알아 내려고하고 있습니다.레일 4 - 부모보기에서 도우미 메서드를 사용하는 방법

프로젝트 및 잠재적 사용을위한 모델이 있습니다. 협회는 다음과 같습니다

<%= potential_uses_for_viewer(@project) %> 
:

프로젝트 내 프로젝트에서

belongs_to :project 
belongs_to :user 

이 페이지를 표시

has_many :potential_uses 
accepts_nested_attributes_for :potential_uses, reject_if: :all_blank, allow_destroy: true 

가능성있는 사용, 내 프로젝트 도우미 폴더에 정의 된 도우미 메서드에 대한 참조가

도우미 메서드 (projects_helper.rb에서)는 다음과 같습니다.

def potential_uses_for_viewer(project) 
    if @current_user.id == @project.profile.user_id 
    render 'potential_uses/private_comments' 
    else 
    render 'potential_uses/open_comments' 
    end 
end 

내 잠재적 인보기 폴더에 두 개의보기 부분이 있습니다. 현재 사용자가 프로젝트 작성자 인 경우 해당 부분 중 하나를 렌더링하고 현재 사용자가 프로젝트 작성자가 아닌 경우 다른 부분 중 하나를 렌더링하려고합니다.

현재 렌더링되는 오류는 없지만 projects 폴더의 도우미는 작동하지 않습니다. 프로젝트를 만든 사용자로 로그인했는지 여부에 관계없이 potential_uses/open_comments보기가 표시됩니다.

어디서 잘못 본 사람이 있습니까?

+0

도우미 안에'@ current_user'는 무엇입니까? 콘솔에 인쇄하려고 했습니까? –

+0

@ArunKumar - 로그인 한 사용자를 확인하는 방법입니다. – Mel

+0

devise가 제공하는 메소드는'current_user'라고 생각합니다. 내 대답이 문제를 해결합니까? –

답변

0

도우미에서 인수 project을 수신하고 있지만 도우미 메서드 내에서 @project.profile.user_id에 액세스하려고합니다. @project은 도우미 안에 없습니다. 당신은 사용해야합니다

if @current_user.id == project.profile.user_id 
    render 'potential_uses/private_comments' 
+0

감사합니다 Arun - 그 의미가 있습니다 – Mel

+0

그것은 @ current_user와 잘 작동합니다. – Mel

+0

좋아요! 내 대답이 업데이트되었습니다. –

관련 문제