比如说,我说我有一个名为Vehicle
的模型
是否有任何Vehicle.controller
等命令会返回:vehicles_controller
或"vehicles_controller"
?
答案 0 :(得分:5)
不是我知道的,但很容易创建这样的帮手:
def controllerize(model)
"#{model.name.tableize}_controller"
end
更好的问题是你为什么要这样做?听起来有点像代码味道 - 你的模型没有很多理由知道你的控制器。
答案 1 :(得分:2)
为什么呢?它是确定路径而不是模型的路线。
让你的模型了解路线毫无意义。模型用于处理业务逻辑和数据。路由是控制器的域。
如果您的routes.rb中的路由定义为resource :vehicles
,那么您可以vehicle_path
,vehicles_path
等形式向您提供路由...以找出您刚刚从应用程序根文件夹中的命令行运行rake routes
的路由。
答案 2 :(得分:0)
这只是一个命名约定和良好实践,可以免费获得一些东西,因为Rails方式,用户模型的控制器通常称为UsersController。如果你遵守约定,那么你可以编写一个方法来为你做。否则,答案是:“不,对不起”。