Rails button_to直接触发Model中的动作

Ada*_*NYC 2 model-view-controller design-patterns ruby-on-rails

我想允许用户点击显示页面上的按钮取消他的活动.我在Event模型中有一个方法取消,但是如果我不需要在Controller中创建取消方法.

我的问题是:

  1. 在这种情况下,直接从视图中调用模型中的方法是一个好主意吗?
  2. 如果没问题,那么我该如何使用button_to呢?

谢谢.

mu *_*ort 6

不,试图直接调用模型方法不是一个好主意.Rails路由系统路由到控制器,因此它根本不起作用(除非你想做更多的工作而不是简单地编写一个微小的控制器).

如果从视图中调用模型方法,则该方法将在构建视图时执行,并且在用户看到任何内容或有机会单击按钮之前执行.因此,您不希望从视图中调用模型的取消方法,当用户执行操作时,您需要调用取消方法,用户操作将路由到控制器,控制器会告诉模型要执行的操作.您可能也需要一些访问控制,并且通常在控制器级别处理.

  • 不,这很酷.只要答案有所帮助,我很高兴.不需要追逐业力的东西. (3认同)