Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby on Rails应用程序控制器RESTful操作_Ruby On Rails - Fatal编程技术网

Ruby on rails Ruby on Rails应用程序控制器RESTful操作

Ruby on rails Ruby on Rails应用程序控制器RESTful操作,ruby-on-rails,Ruby On Rails,有没有一个很好的方法来重构我的控制器?我所有的控制器看起来都完全一样,例如,只需更改模型名称 class ModelnamesController < ApplicationController def index @modelnames = Modelname.find(:all) end def new @modelname = Modelname.new end ... end 实际上,您要求ApplicationContro

有没有一个很好的方法来重构我的控制器?我所有的控制器看起来都完全一样,例如,只需更改模型名称

class ModelnamesController < ApplicationController
   def index
      @modelnames = Modelname.find(:all)
   end

   def new
      @modelname = Modelname.new
   end
   ...
end

实际上,您要求ApplicationController不仅是主控制器,而且还要处理信息路由(应用程序级路由)。这打破了MVC模式的意图,因为模式是按实体应用的。它将技术与业务(无论您编写应用程序的目的是什么)分离开来,这样在应用程序的整个生命周期中,维护和可扩展性都可能是一场噩梦。路由在RoR应用程序中的工作方式是多余的,因为路由(以及MVC的实现)工作在命名约定上,这些约定旨在提供解决方案和业务之间的充分耦合,但并不繁重


你不需要Ruby或Rails,你需要的是Pi演算

我建议您使用开箱即用的,由Cancan和activeAdmin等宝石在幕后使用。

尝试Modelname.All而不是find(:All)@SamD我想知道的是,是否有一种方法可以将操作放入应用程序控制器中,并且它们对每种模型都有效这是cancanthanks@apReading在幕后使用的目标这就是我想要的,如果你把它作为一个答案,我很乐意接受
class ModelnamesController < ApplicationController
end