У меня есть модель User, которая имеет has_many вещи (принадлежность принадлежит пользователю). У меня есть страница пользователя для показа, которая показывает информацию пользователя и список всех его вещей. Я добавил ссылку на каждую принадлежащую пользователю доступ к странице, принадлежащей к показу, эта ссылка в настоящее время не работает, потому что я не знаю, как получить доступ к идентификатору принадлежности.Доступ к идентификатору дочернего объекта в контроллере
Оба пользователя и их принадлежность определяются как ресурсы, принадлежащие не к пользователю.
Вот кусок коды:
показать страницу пользователя содержит:
<% unless @user.belongings.empty? %>
<table class="belongings" summary="User's objects and services">
<%= render @belongings %>
</table>
<%= will_paginate @belongings %>
<% end %>
с использованием этого частичная:
<td class="belongings">
<span class="id"><strong>Object ID: </strong><%= belonging.id %></span><br/>
<span class="name"><strong>Name: </strong><%= belonging.name %></span><br/>
<p>
<span class="description"><strong>Description: </strong><%= belonging.description %></span>
</p>
<span class="price"><strong>Price per week: </strong><%= belonging.price %></span> <br/>
<span class="caution"><strong>Caution: </strong><%= belonging.caution %></span><br/>
<span class="timestamp">
Posted <%= time_ago_in_words(belonging.created_at) %> ago.
</span>
</td>
<td>
<%= link_to "Show item", belonging_path %>
</td>
</tr>
Проблемы заключается в том, как получить доступ к принадлежащему идентификационному в принадлежащем х контроллер:
def show
@user = User.find(params[:id])
@belonging = @user.belongings.find(params[:id])
@title = @belonging.name
end
==>: id всегда ссылается на идентификатор пользователя. Я попытался использовать: user_id для доступа к пользователю, но тогда у меня есть «не удается найти пользователя без id», и если я попытаюсь получить доступ к принадлежности, используя: принадлежность_и_, я «не могу найти принадлежность без id».
Я знаю, что это основное, но я новичок в Rails, и я искал, чтобы понять, как решить эту проблему в течение нескольких часов ...
Большого спасибо за любую помощь!
Спасибо, Сайед, вы спасли мой день! Я действительно ценю полное объяснение, которое вы дали, поскольку вы, возможно, заметили, что я немного потерялся и смутился! – citraL
@ citraL Добро пожаловать. Рад, что смог помочь. –