用户来我的应用程序输入他们拥有的卡片。卡片按问题组织,这样
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
……但这看起来很可怕。此外,这是我们将在应用程序中使用的概念,我不想像这样污染所有控制器。
处理这种情况的最佳做法是什么?