我有三個型號:項目包含階段包含內容。Rails的嵌套協會(通過模型模型)
在Projects 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。 「階段」 WHERE 「階段」, 「廢料」= '脈衝' ORDER BY 「階段」, 「ID」 ASC LIMIT 1
提取的源(圍繞線#16):
stage = Stage.friendly.find(params[:id])
編輯:問題是它尋找一個階段與項目的id,而不是舞臺的ID。我試圖讓它顯示的舞臺,然後遍歷屬於它的每個內容。
爲什麼你發現通過'PARAMS [ID]你已經去了'/ projects/pulse',然後使用友好的id來找到正確的項目,但是你沒有一個階段的脈衝。你想在第16行做什麼? –
在線16我試圖找到舞臺併發回它的內容 – beaconhill
但是你沒有一個舞臺,你有很多。 –