ルーティングについて悩んでいるので意見をお聞かせください。
現在予約システムを作っているのですが、予約をする側をuser,予約を受ける側をstoreとします。
userはstoreに向け予約をし、storeは予約状況を確認できます。
予約はreservationコントローラによって処理されます。
MVCの考え方でいくとCRUDを用いてシンプルに設計するのが良い方法だと思いますが、行いたい処理、取得したい値、異なる画面を出力したい場合、どういうURLにしどのコントローラに飛ばすのが良いでしょうか?
①
例えばuserの予約一覧を取得したい時と、storeに入った予約一覧を取得したい時でURLを変え、コントローラも変えなければならないでしょうか?
この場合、コントローラに含まれるメソッドはCRUDというシンプルな物だけではなく、getUserReservationやgetStoreReservationなど分けなければならないかと思います。
URL : /reservation/user_id/params[:user]
コントローラ : ReservationController#read
user_idとuserと判定できる値を送る、readメソッドの条件分岐により、user_idを用いて、予約一覧を取得する
②シンプルに済ませるのであれば、CRUDのreadメソッドで取得した値によって条件分岐させ、取得する方法もあるかと思います。取得するパラメータとして必要になってくるのが、userのものかstoreのものかというのを判断できる値だと思います。
また、この方法を取る場合、URLは同一のものではなく、URLは異なり、コントローラのメソッドは同一のものに送るかと思います。
URL : /getUserReservation/user_id/
コントローラ : ReservationController#getUserReservation
①、②ではどちらが良い方法なのでしょうか?
その他に良い手法などあれば教えていたいです。
追記
①、②以外に、userコントローラ、storeコントローラに独自のメソッド、getReservationなどを作って、取得する方法はいかがでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/12/12 14:29