Как инициализируется @user_cars?Кажется, вы принимаете User # user_cars в качестве значения.Попробуйте
<% @user_cars.each do |c| %>
<li><%= c.car.name %></li>
<% end %>
И вы также можете использовать has_many :through
, чтобы упростить соединение:
# User model
has_many :user_cars
has_many :cars, :through => :user_cars
Тогда все автомобили, принадлежащие пользователю, могут быть доступны через Пользовательские автомобили.*
Если вы хотите проверить, принадлежит ли данный автомобиль пользователю, вы можете сначала получить все автомобили, принадлежащие пользователю (не забудьте сначала добавить вышеупомянутые строки в модель пользователя):
@owned_cars = current_user.cars.all
А затем проверьте, включен ли данный автомобиль в этот список:
<% @cars.each_with_index do |car, i|%> #loop through all cars in the system
<% if @owned_cars.include?(car) %>
<%= car.name %> is owned by the user
<% else %>
<%= car.name %> is not owned by the user
<% end %>
<% end %>