我正在制作一个 rails 4 应用程序,用户可以在其中创建项目并将帖子添加到项目中。帖子将由文本和带有可选标题的图像组成,所以我有一个照片模型来存储图像及其标题。
用户有很多项目,项目有很多帖子,帖子有很多照片
我的路线如下所示:
resources :projects do
resources :posts
end
resources :posts do
resources :photos
end
current_user 的授权适用于项目和帖子,因为帖子与存储 user_id 的项目直接相关。照片只直接链接到帖子,所以我不能像在帖子控制器中那样做:
def set_project
@project = current_user.projects.find(params[:project_id])
end
有没有办法以类似的方式在照片上使用 current_user,这样只有项目的作者才能在他们的帖子中添加、编辑、删除照片?
目前在我的照片控制器中,我通过以下方式获得相关帖子:
def set_post
@post = Post.find(params[:post_id])
end
但这显然没有 current_user 授权。我需要某种方法来查找帖子所属项目的 ID,然后在照片控制器内部使用 current_user。