User
has_many Tickets
.
Ticket
所属先User
( ticket.user_id
)
ルート.rb
resources :users do
resources :tickets
end
レーキルート
user_tickets GET /users/:user_id/tickets(.:format) tickets#index
ユーザー/index.html.erb
<%= link_to("View User's Tickets", user_tickets_path(user)) %>
users_controller.rb
private
def set_user
@user = User.find(params[:id])
@tickets = @user.tickets
end
ticket_controller.rb
def index
@search = Ticket.search(params[:q])
@tickets = @search.result.paginate(:page => params[:page], :per_page => 25)
render 'shared/tickets.html.erb'
end
リンクにカーソルを合わせると表示されます.../users/[the selected user's id]/tickets
チケット/インデックス ページに移動すると、選択したユーザーの ID を持つチケットだけでなく、すべてのチケットが表示されます。
私のルートが間違っているか、まったく別のものである可能性があります。どんな助けでも大歓迎です。
編集
私の問題は、そのビューを、、などに使用したいので (DRY に保つために) @tickets
、さまざまな方法で ticket_controller/index メソッドを呼び出す必要があることだと思います。@tickets.all
@user.tickets
@facility.tickets
チケットの同じインデックス リストは、元のリンクに基づいて変更する必要があります (それがユーザー リストからのもので、そのユーザーによるすべてのチケットのリストを表示するか、ファシリティ リストからのもので、すべてのチケットのリストを表示します)。その施設)。私はどこかでひどく間違ったことをしているだけです。
私が試す可能な解決策:
のようなカスタムルートを作成し、そのメソッドに条件をget 'users_tickets' => "users#users_tickets"
入れて、@tickets
そのように shared/tickets.html.erb を呼び出す必要があるかもしれません。