0

只是为了接受教育,我想知道为 GET 和 POST 操作使用一个控制器方法是否是一种好习惯,例如def signup ... end,它将显示一个表单,如果request.post?为真 - 然后执行所有业务逻辑等等。这是什么好方法,还是我应该将这些方法彼此分开?

谢谢指教!

4

3 回答 3

3

我认为为发布请求定义单独的操作会更好。您显然可以在同一个操作中完成它,但是如果您要在 sign_up 操作中编写一个大的 if..else 块,您不妨使用另一个操作。如果您缺少名称,则可以将其称为 create :P 。它使代码更具逻辑性和可读性。

于 2012-09-06T09:05:35.880 回答
1

无论哪种方式,代码组织几乎没有区别。

使用单独的方法,它看起来像:

def signup_create
  # create here
end
def signup_new
  # render here
end

使用相同的方法,它看起来像:

def signup
  if request.post?
    # create here
  else
    # render here
  end
end

看起来他们俩都组织得很好。选择你喜欢的。如果它们是默认的 CRUD 方法,那么单独的方法很好,因为已经想到了单独的名称(例如newvs createeditvs update)。

如果它们不是 CRUD 或页面上的额外表单,并且您只能为它想一个名称(如signup),请随意重载名称并使用相同的方法。

于 2012-09-06T08:59:36.033 回答
0

我认为,如果您正在使用(或将要使用)基于方法的授权(例如 cancan),则针对不同请求的单独操作会更好。

于 2012-09-06T09:14:51.947 回答