タイトルにあるように、特定のユーザーのすべての車を一覧表示しようとしています。また、各車には2つのオプションの表示と更新があります。
写真にあるように、私の問題は、選択した車を表示または編集したいときに、ルーティング(画像の左下を見る)で、users / "id"/carsなどのすべての車のすべてのIDを取得することです。 / "id1" / "id2"は、代わりに特定の車のIDを取得します。users/ "id" / cars /"id1"/ここにteindex.html.erbファイルがあります。
<div class="container">
<h1>Listing Cars</h1>
<table class="table table-condensed">
<tr>
<th>Brand</th>
<th>Color</th>
<th>Model</th>
<th>Year</th>
<th></th>
<th></th>
</tr>
<% @car.each do |car| %>
<tr>
<td><%= car.brand %></td>
<td><%= car.color %></td>
<td><%= car.model %></td>
<td><%= car.year %></td>
<td><%= link_to 'Show', user_car_path(@user,@car) %></td>
<td><%= link_to 'Edit', edit_user_car_path(@user, @car) %></td>
</tr>
<% end %>
</table>
<br />
<%= link_to 'New car', new_user_car_path, :class => "btn btn-primary" %>
</div>
車のコントローラーが必要かどうか:
class CarsController < ApplicationController
def new
@user = User.find(params[:user_id])
@car = @user.cars.build
end
def create
@user = User.find(params[:user_id])
@car = @user.cars.build(params[:car])
if @car.save
redirect_to user_car_path(@user, @car), :flash => { :notice => " car created!" }
else
redirect_to new_user_car_path ,:flash => { :notice => " sorry try again :(" }
end
end
def show
@user = User.find(params[:user_id])
@car = @user.cars.find(params[:id])
#redirect_to user_car_path(@user, @car)
end
def index
@user = User.find(params[:user_id])
@car = @user.cars.all
end
def edit
@user = User.find(params[:user_id])
@car = @user.cars.find(params[:id])
#redirect_to user_car_path(@user, @car)
end
def update
@user = User.find(params[:user_id])
@car = @user.cars.find(params[:id])
if @car.update_attributes(params[:car])
redirect_to user_cars_path, :flash => { :notice => " Car Updated!" }
else
render 'edit'
end
end
end