用户来我的应用程序输入他们拥有的卡片。卡片按问题组织,以便
Issue has_many Cards
所以我们的基本情况(1)是当用户登录并更新他的收藏时,他访问
/issues/{id}
哪次点击issues#show
呈现issues\show.haml
。在此页面上,他们可以从其收藏中输入或删除卡片。该页面有各种排序和按钮等...
我想公开(2)用户集合,以便其他人可以访问
/{username}/issues/{id}
这个页面会少得多,并且会显示与登录用户相关的其他信息,而不是卡片的所有者。显而易见的选择是在:issues
下嵌套:users
并使IssuesController#show
处理所有内容。但是IssuesController#show
已经处理了上述第一种情况。
一个实现是:
class IssuesController
def show
if(params[:user_id])
#do something
elsif
#do and render something else
end
end
end
......但那看起来很可怕。此外,这是我们将在应用程序周围使用的概念,我讨厌污染所有类似的控制器。
处理这种情况的最佳做法是什么?
答案 0 :(得分:0)
首发/issues/:id
应由IssuesController#show
而非#index
您可以选择将/:user_id/issues/:id
路由到您喜欢的任何控制器和操作。这不一定是最好的做法,所以选择你满意的东西。我会把它传递给类似IssuesController#show_for_user
的东西,所以它很好而且清晰。