1

用户来我的应用程序输入他们拥有的卡片。卡片按问题组织,这样

Issue has_many Cards

所以我们的基本情况(1)是当用户登录并更新他的收藏时,他访问

/issues/{id}

哪个命中issues#show呈现issues\show.haml。在此页面上,他们从他们的收藏中输入或删除卡片。该页面有各种排序和按钮等......

我想公开用户收藏(2),以便其他人可以访问

/{username}/issues/{id}

这个页面的内容会少得多,并且会显示与登录用户相关的其他信息,而不是卡片的所有者。显而易见的选择是嵌套:issues并处理所有事情。但已经在处理上述第一种情况。:usersIssuesController#showIssuesController#show

一种实现是:

class IssuesController
    def show
         if(params[:user_id])
              #do something
         elsif
              #do and render something else
         end
    end
end

……但这看起来很可怕。此外,这是我们将在应用程序中使用的概念,我不想像这样污染所有控制器。

处理这种情况的最佳做法是什么?

4

1 回答 1

0

一开始/issues/:id应该由IssuesController#show不处理#index

您可以选择路由/:user_id/issues/:id到您喜欢的任何控制器和操作。不一定有最佳实践,所以选择你满意的东西。我会把它路由到类似的东西,IssuesController#show_for_user所以它很好而且很清楚。

于 2012-06-26T04:11:48.037 回答