我正在使用rails应用程序并使用单一资源。但是,单数资源的控制器名称是复数。 例如map.resource activity_report expectes activity_reports_controller。
rails 3指南中给出的解释是:“......你可能想要使用相同的控制器来实现单一路径和复数路径......”这是一个合理的解释,但是用例是什么?使用相同的控制器来处理单一路线和多路线?
答案 0 :(得分:0)
你可以使用它。
class UsersController < Application
end
map.resource :user
map.resources :users
答案 1 :(得分:0)
在RESTful Rails应用程序中,通常每个RESTful资源都有一个控制器的映射。例如,假设我们希望控制器处理用户登录(/session
),但也提供当前登录的用户列表(/sessions
)。从逻辑上讲,我们可以将这两项责任放在SessionsController
:
class SessionsController < ApplicationController
# GET /sessions
# Display a list of logged in users
def index
...
end
# GET /session/new
# Display the login form
def new
...
end
# POST /session
# Authenticate a user
def create
...
end
end
另一种方法是将登录用户列出的功能拆分为单独的管理控制器。
答案 2 :(得分:0)
我可以想象使用它的另一种情况是,让我们说(这不一定是你想要的商业模式,但与我保持一段时间)你将建立一个电影评论的网站和电影信息。因此,一方面,您可以将最新评论列表链接为多元资源路径,如下所示:
http://yoursite.com/reviews?count=5
所以,在这种情况下,你有一个集合的控制器,对吗?但是你只会复习一次电影。那么,如果您想要轻松访问电影的评论呢?
http://yoursite.com/movies/pirates_of_the_carribean_2/review
嗯,有一个嵌套的单一资源路线,因为电影有__ review,对吗?