2010-10-25 79 views

回答

4

ActionPackActiveRecord是单独的模块,所以没有内置的支持。

5
params[:controller].classify.constantize 
+1

不应该是'params [:controller] .classify.constantize'? – zetetic 2010-10-25 19:07:16

+0

是的,修复它。谢谢! – jordinl 2010-10-25 19:19:13

+0

我不认为这是什么viatropos问。他希望控制器内部的* model *的名称,这给了控制器。控制器与模型没有固有的联系,所以我相信Sam的答案是正确的。 – 2010-10-25 19:23:24

1

另一种方式:

controller_name.classify 
+0

这会切断命名空间 – jmoreira 2013-11-22 15:07:15

+0

这些是等效的: – 2014-11-15 00:03:10

+0

预期的完整注释:controller_name.classify()等同于self.class.name.gsub(“Controller”,“”).singularize ()。在我看来,将模型与控制器相关联的需求很常见,例如,如果您有ORM层次结构。将相同的代码复制到每个子类中是浪费的(例如,new()),只需更改模型名称。 – 2014-11-15 00:11:15

相关问题