1

私は管理するコントローラーとUsers別のコントローラーを持っていReservationsます。
特定のユーザーのすべての予約を表示するコードはどこに配置する必要がありますか?これはコントローラー
で行われますか、それともコントローラーで行われますか?UserReservation

4

3 に答える 3

2

場合によります。ネストされたリソースを扱っている場合 (つまり、 のようなものにアクセスできるようにしたい場合)、 Rails 2 には古くなっていますが、まだ有用なこの Railscast/users/4321/reservationsを見てください。

おそらくあなたが望むのは、コードをアクションのReservationsController下に置くindexことですが、それはあなたが何を計画しているかによって異なります. それにもかかわらず、次のようなことは理にかなっています。

class ReservationsController < ApplicationController
  def index
    @reservations = Reservations.where(user: params[:user_id])
  end
end
于 2012-12-23T20:45:58.713 に答える
0

ここでは少しずれていると思います...モデルには関連付けが必要です。例えば:

User < ActiveRecord::Base
 has_many :reservations
end

あなたの UserController#show かもしれません

def show
 @user = User.find(params["id")
end

そして、ビューは次のようになります。

<ul>
    <% @user.reservations.each do |r| %>
    <li><%= r.details =%></li>
    <% end %>
</ul>

関連付けにより、必要なオブジェクトをどちらからでも呼び出すことができるようになります。@reservation.user.name予約ビューで簡単に表示できます

于 2012-12-23T20:47:42.497 に答える
0

特定のユーザーのすべての予約を表示するコードはどこにありますか?

場合によります。特定のユーザーの詳細ページ (/users/42) に予約を表示したい場合、UsersController#show アクションは完全に合理的です。検索フォームを作成する場合、基本的には ReservationsControler#index アクションに対するフィルターです。

于 2012-12-23T20:47:43.653 に答える