没有View的模型:我是否需要Rails中的Controller

时间:2012-01-02 06:44:03

标签: ruby-on-rails model-view-controller view model controller

我想有一个推荐模型,其中用户A可以将事件X引用给用户B.我计划实现它的方式是没有引荐视图。我只是在事件/显示页面上有一个用于创建操作的“推荐”按钮,并且已在用户/显示页面中引用用户来显示。我认为没有必要为推荐创建视图。

从设计模式的角度来看,可以在Events_Controller中创建“refer”动作来调用Referral模型中的create方法,而不是将其发送到指定的控制器(即Refferals_Controller),这将调用Referral模型?

更一般地说,我是否应该创建控制器以允许其他控制器与我的模型交互,即使我不需要此特定模型的任何视图?

谢谢。

2 个答案:

答案 0 :(得分:4)

Controller是http请求的来源(通过路由后)。没有传入请求==没有控制器。控制器符合REST方案(索引,显示,创建......)时效果很好。但您也可以添加非REST操作(Rails Routing支持:3 Non-Resourceful Routes
所有与模型的交互都应该放在模型类中。(编辑:我的意思是代码)

答案 1 :(得分:0)

您不应该创建一个控制器来仅从其他控制器转发对模型的调用。每个控制器可以有多个模型。或每个型号的几个控制器。

有时候(如果你知道你在做什么)你甚至可以直接从视图中调用模型方法(“有些规则可以弯曲,有些可以被破坏”(c)Morpheus)。