只是为了接受教育,我想知道为 GET 和 POST 操作使用一个控制器方法是否是一种好习惯,例如def signup ... end
,它将显示一个表单,如果request.post?
为真 - 然后执行所有业务逻辑等等。这是什么好方法,还是我应该将这些方法彼此分开?
谢谢指教!
只是为了接受教育,我想知道为 GET 和 POST 操作使用一个控制器方法是否是一种好习惯,例如def signup ... end
,它将显示一个表单,如果request.post?
为真 - 然后执行所有业务逻辑等等。这是什么好方法,还是我应该将这些方法彼此分开?
谢谢指教!
我认为为发布请求定义单独的操作会更好。您显然可以在同一个操作中完成它,但是如果您要在 sign_up 操作中编写一个大的 if..else 块,您不妨使用另一个操作。如果您缺少名称,则可以将其称为 create :P 。它使代码更具逻辑性和可读性。
无论哪种方式,代码组织几乎没有区别。
使用单独的方法,它看起来像:
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 方法,那么单独的方法很好,因为已经想到了单独的名称(例如new
vs create
,edit
vs update
)。
如果它们不是 CRUD 或页面上的额外表单,并且您只能为它想一个名称(如signup
),请随意重载名称并使用相同的方法。
我认为,如果您正在使用(或将要使用)基于方法的授权(例如 cancan),则针对不同请求的单独操作会更好。