Я пытаюсь просто передать объект (dgroup) в действие индекса другого контроллера (tplans). Я выполняю поиск на основе внешнего ключа, поэтому я передаю ему идентификатор объекта, который он должен фильтровать, но он, похоже, не работает. Это мой код:Передача идентификатора контроллеру из объекта в рельсах
В index.html в DGROUP в:
<% @dgroups.each do |dgroup| %>
<tr>
<td><%= dgroup.id %></td>
<td><%= link_to 'Show TPlans', tplans_path(dgroup) %></td>
<td><%= link_to 'Edit', edit_dgroup_path(dgroup) %></td>
<td><%= link_to 'Destroy', dgroup, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
В контроллере tplan в:
def index
@dgid = Dgroup.find(params[:id])
@tplans = @dgid.tplans
respond_to do |format|
format.html # index.html.erb
format.json { render json: @tplans }
end
end
Что я делаю неправильно? Обратите внимание, что если я заменю:
@dgid = Dgroup.find(params[:id])
с
@dgid = Dgroup.find(1)
код работает, только явно не найти объект, который я хочу. Я просто делал это, чтобы убедиться, что код контроллера структурирован правильно.
Пожалуйста, вы можете отобразить маршрут для DGROUP индекса и редактировать действия? – Mohanraj
вам, вероятно, придется использовать 'params [: dgroup_id]', в зависимости от вашего маршрута – mihai