У меня есть три модели: проектов, содержащие этапы , который содержит Содержания.Rails вложенных ассоциаций (модели с помощью модели)
В проектах show.html.erb, я хочу показать все этапы, связанные с этим проектом, а затем содержимое, связанное с этими этапами.
Так вот что я пытался в show.html.erb:
<% @stages.each do |stage| %>
<section name="concept" class="stage">
<h3><%= stage.name %></h3>
<% @contents.each do |content| %>
<p><%= content.name %></p>
<% end %>
</section>
<% end %>
И вот что в моей projects_controller.rb
def show
project = Project.friendly.find(params[:id])
@stages = project.stages
stage = Stage.friendly.find(params[:id])
@contents = stage.contents
end
Вот stage.rb модель:
class Stage < ActiveRecord::Base
extend FriendlyId
friendly_id :name, use: :slugged
belongs_to :project
has_many :contents
end
А вот contents.rb:
class Content < ActiveRecord::Base
belongs_to :stage
end
ошибка, что я получаю:
SQLite3 :: SQLException: нет такой колонки: stages.slug: Выберите "этапы" * FROM. "стадия", где "этапы" "пробковый" 'импульс' ORDER = BY "этапов" "идентификатор" ASC LIMIT 1
Извлеченные источник (около линии № 16):..
stage = Stage.friendly.find(params[:id])
EDIT: Проблема заключается в том, что он ищет сцену с идентификатором проекта, а не идентификатором сцены. Я пытаюсь получить Stage, который он показывает, а затем перебирает все содержимое, принадлежащее ему.
Почему вы обретении 'Params [: ID]' как с этапа и проекта в контроллере проектов? Вы отправились в '/ projects/pulse', который затем использует дружественный идентификатор, чтобы найти правильный проект, но у вас нет сцены с пульсом пульса. Что вы пытаетесь сделать в строке 16? –
On Line 16 Я пытаюсь получить сцену и отправить ее содержимое – beaconhill
Но у вас нет одного этапа, у вас их много. –