您可以在Rails中定义多个具有相同名称的操作吗?

问题描述:

在asp.net MVC中,只要参数(换言之,方法签名)不同,就可以使用相同的名称定义多个操作方法。你可以在Rails中做到这一点,或者你必须在同一个动作中使用switch语句来解决吗?您可以在Rails中定义多个具有相同名称的操作吗?

不,您不能定义具有相同名称的多个操作。

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

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

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

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