Ruby on rails 如何根据提交的参数处理控制器操作的多个行为?

Ruby on rails 如何根据提交的参数处理控制器操作的多个行为?,ruby-on-rails,ruby,controller,action,behavior,Ruby On Rails,Ruby,Controller,Action,Behavior,我使用的是RubyonRails4,在我的RESTful控制器中,我希望根据提交的参数处理每个控制器操作的多个行为。我认为我可以避免创建一个新的控制器,因为尽管存在参数,但所提到的行为对相同的模型(即,在相同的数据库表和/或控制器响应数据不同)使用并产生影响 为了处理同一控制器操作的多个行为,我建议的解决方案是,我可以提交一个路由器参数,如behavior=1,behavior=2。。。例如,当我的应用程序接收到带有behavior=1参数的请求时,返回的数据与接收到behavior=2或beh

我使用的是RubyonRails4,在我的RESTful控制器中,我希望根据提交的参数处理每个控制器操作的多个行为。我认为我可以避免创建一个新的控制器,因为尽管存在参数,但所提到的行为对相同的模型(即,在相同的数据库表和/或控制器响应数据不同)使用并产生影响

为了处理同一控制器操作的多个行为,我建议的解决方案是,我可以提交一个路由器参数,如behavior=1,behavior=2。。。例如,当我的应用程序接收到带有behavior=1参数的请求时,返回的数据与接收到behavior=2或behavior=N时不同。但是,如果这样做,控制器实现可能会导致更难维护代码


你有什么建议?我可以/应该如何处理多重行为案例?常见的技术和做法是什么?我应该创建一个专用控制器,还是可以使用与上面建议的相同的控制器?

类似的东西怎么样

def some_controller_action
  case params[:behavior]
  when 1
    # something for when behavior = 1
  when 2
  when 3
  when 4
  else
  end
end

正如问题本身所提出的,这正是我所想的。然而,这样做,控制器实现可能会导致更难维护的代码。因此,我发布了最后的子问题?这是我个人的观点,但将每个案例分离出来,让控制员采取行动似乎有些过火。您可以创建一个封装一些逻辑的模型方法,但大体上,我认为这是可以的。好的,您不需要很多控制器,但是为什么没有很多动作呢?一个处理许多不同情况的巨大方法听起来像是要避免的事情。@Uri Agassi-我没有说我不想要很多控制器,甚至很多动作。@Frederick Cheung-一个巨大的方法是我害怕的。也许有一些我不知道的替代方案…那么为什么不为每个行为创建不同的操作呢?这就是他们在sll之后的意思