0

私が取り組んでいるレールサイトがあり、ユーザーと場所があります

ユーザーには多くの場所があり、場所には多くのユーザーがいる可能性があるため、多対多の...

has_many :through

私の質問はこれです...ほとんどのユーザーは1つの場所と1つの場所しか持っていないので、ログインするときにURLに入れるか、セッションに保存する必要があります

/some_location/users

または、このような方法でセッションに場所を保存する必要があります

def current_location
  @location ||= Location.find(session[:location_id])
rescue ActiveRecord::RecordNotFound
  @location = current_user.locations.first
  session[:location] = @location.id
  @location
end

URLクリーナーを持っている

/users

パス内の場所の名前を使用して上記の方法で実行した場合、ルートはどのように実行しますか

4

2 に答える 2

0

ユーザーがその場所に直接アクセスする必要がない場合 (または場所を切り替える簡単な方法がある場合) は、おそらくセッションを使用することをお勧めします。これにより、場所が 1 つしかない大部分のユーザーにとってナビゲーションがシンプルになり、混乱が少なくなると同時に、複数の場所を持つユーザーのエッジ ケースをより簡単な方法で処理できるようになります。

于 2012-05-22T19:24:58.717 に答える
0

複数の場所を持つユーザーの場合、以下のコードはランダムな場所を返します

@location = current_user.locations.first

場所の選択に優先順位を付けることができます-たとえばアルファベット順

@location = current_user.locations.order("name DESC").first

ただし、ユーザーが場所を変更すると、その URL は別の場所にマップされます。それはあなたが望むものかもしれませんし、そうでないかもしれません。

于 2012-05-23T05:32:49.810 に答える