저는 사용자가 프로젝트를 만들고 프로젝트를 포스트에 추가 할 수있는 레일 4 앱을 만들고 있습니다. 게시물은 텍스트와 선택적 캡션이있는 이미지로 구성되므로 이미지와 캡션을 저장하는 사진 모델이 있습니다. CURRENT_USER에 의해레일즈 - user_id로 모델에 직접 액세스하지 않고 중첩 된 리소스에 current_user를 사용하십시오.
resources :projects do
resources :posts
end
resources :posts do
resources :photos
end
인증 중은 게시물을 프로젝트에 대한 작동 및 게시물 직접 관련이 있기 때문에 :
사용자는 프로젝트가 많은 게시물과 게시물은 다음과 같이 많은 사진
내 경로
을 가지고 있고, 많은 프로젝트가 user_id가 저장된 프로젝트. 사진은 내가 게시물 컨트롤러에서와 그래서 나는이 작업을 수행 할 수 없습니다 게시물로 직접 연결 : 비슷한 방식으로 사진에 CURRENT_USER를 사용하는 방법이 있나요def set_project
@project = current_user.projects.find(params[:project_id])
end
프로젝트의 저자가 할 수 있도록 사진을 자신의 게시물에 추가, 편집, 삭제 하시겠습니까?
현재 내 사진 컨트롤러에서 나는 통해 관련 게시물을 얻을 :
def set_post
@post = Post.find(params[:post_id])
end
하지만 분명 더 CURRENT_USER 권한이 없습니다. 게시물이 속한 프로젝트의 ID를 찾은 다음 사진 컨트롤러 내부에서 current_user를 사용하는 방법이 필요합니다.
'current_user.projects.find (params [: project_id] .posts.find (params [: post_id]). photos'가 필요한가요? 또는 모델 중 하나에서 범위를 정의 할 수 있습니다 : http : // guides .rubyonrails.org/active_record_querying.html # scope – Mindbreaker
필자는 필자가 필요로하는 것 같아요. @post = current_user.projects.find (params [: project_id] .posts.find (params [: post_id]))')'작동하지 않는다. –