0

私のドメインでは、ユーザーは編集するユニバースを選択し、選択したユニバースに関連付けられたモデルを表示/編集/破棄することができます。基本的に、ウェブサイト全体は、現在表示しているユニバースによって異なります。

パラメータでどのユニバースを渡していたのですが、これはすぐに扱いにくくなっています。ユーザーが最後に選択したユニバースを追跡する標準的な方法はありますか? この情報をある種の Cookie に保存する必要がありますか? データを保持するために、ある種の奇妙なシングルトン モデルを作成する必要がありますか? セッションを使用する方法はありますか (どのユーザーがログインしているかを追跡する場合のように)?

4

1 に答える 1

3

ルートはどのように設定されていますか? そのような依存関係にはネストされたルートを使用します。

resources :universes do
   resources :planets
   resources :spaceships
end

ページへの URL は次のようになります。

www.somedomain.com/:universe_id/planets/:planet_id/edit?param=1&param2=2

次に、常にユニバース ID を利用できるようにし、ApplicationController で before_filter を使用して、アクションの前にユニバースをロードする関数を呼び出すことができるため、何もしなくても常に @universe を利用できます。

もちろん、ユニバースをリンクに追加する必要がありますが、常に存在する @universe オブジェクトを利用するヘルパー メソッドを作成することで自動化することもできます。これらのリソース ルート用に作成されたデフォルトのヘルパーは次のようになります。edit_universe_planet_path(@universe, planet.id)

于 2013-09-12T13:39:36.160 に答える