教育を受けるために、GETアクションとPOSTアクションの両方に1つのコントローラーメソッドを用意するのが良い方法であるかどうかを知りたかったのです。たとえばdef signup ... end
、フォームを表示し、request.post?
trueの場合はすべてのビジネスロジックを実行します。それは良いアプローチですか、それともこれらのメソッドを互いに分離する必要がありますか?
アドバイスありがとう!
教育を受けるために、GETアクションとPOSTアクションの両方に1つのコントローラーメソッドを用意するのが良い方法であるかどうかを知りたかったのです。たとえばdef signup ... end
、フォームを表示し、request.post?
trueの場合はすべてのビジネスロジックを実行します。それは良いアプローチですか、それともこれらのメソッドを互いに分離する必要がありますか?
アドバイスありがとう!
どちらの方法でも、コード編成にほとんど違いはありません。
別のメソッドを使用すると、次のようになります。
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
vsupdate
など)。
それらがCRUDまたはページ上の追加のフォームではなく、その名前が1つしか考えられない場合(のようにsignup
)、名前をオーバーロードして同じ方法を使用してください。
メソッドベースの承認(cancanなど)を使用している(または使用する予定である)場合は、異なるリクエストに対して個別のアクションを実行する方がよいと思います。