你能在Rails中定义多个具有相同名称的动作吗?

时间:2016-09-27 14:18:30

标签: ruby-on-rails ruby asp.net-mvc

在asp.net MVC中,只要参数(换句话说方法签名)不同,就可以定义多个具有相同名称的动作方法。你能在Rails中做到这一点,还是你必须在同一个动作中解决switch语句?

2 个答案:

答案 0 :(得分:2)

否则您无法定义具有相同名称的多个操作。

它独立于Rails,它是Ruby的东西 - 该方法的后一种定义只会覆盖前者。

其中一个解决方案是让方法接受更多参数(例如,某些参数可能是可选的),并根据这些参数进行区分。

答案 1 :(得分:0)

我猜测“行动”是指控制器动作。您不必将逻辑放在控制器中。您可以预先设置逻辑,生成链接或两个不同控制器的路径,两个控制器都具有相同名称的操作。

如果您想知道方法查找在Ruby中是如何工作的:如果在对象上调用方法并且该对象的查找链中有多个方法具有相同的名称,Ruby将使用具有最近范围的方法。有关更多详细信息,请参阅“Ruby方法查找”。请记住,您总是可以打破该方法查找链,并通过命名类,模块等来调用所需方法的特定“版本”。