我正在开发一个深度关联的应用程序。故事属于规划级别,规划级别属于一个或多个程序。
class Program < ActiveRecord::Base
has_and_belongs_to_many :planning_levels
has_many :stories, :through => :planning_levels
end
class PlanningLevelsPrograms < ActiveRecord::Base
end
class PlanningLevel < ActiveRecord::Base
has_and_belongs_to_many :programs
has_many :stories
end
class Story < ActiveRecord::Base
belongs_to :planning_level
end
在节目节目页面中,我想显示每个规划级别的节目,每个规划级别和聚合故事计数。
我不确定如何从程序显示页面访问Story模型。
以下内容非常适合显示属于本程序的每个计划级别。
<% @program.planning_levels.each do |p| %>
<p><%= p.name %></p>
<% end %>
...但我不知道如何为每个显示的计划级别进行以下工作。如何从程序中访问Story模型?程序控制器中是否需要我缺少的东西。提前谢谢!
@program.planning_level.stories.count(:id)
答案 0 :(得分:0)
每个计划级别:
@program.stories.count
@program的聚合故事数(如果需要):
calcMod()
希望这可以帮到你。
答案 1 :(得分:0)
在您的视图中,您只需按名称使用模型关联即可。尝试使用此代码作为显示需求的起点:
<% @program.planning_levels.each do |planning_level| %>
<p><%= planning_level.name %> with <%= planning_level.stories.count %> stories</p>
<% planning_level.stories.each do |story| %>
<p><%= story.name %></p>
<% end %>
<% end %>
您可以输出为故事循环选择的任何详细信息。您可以添加样式以获得所需的演示文稿。
例如,您可以考虑将其格式化为嵌套列表,如下所示:
<% @program.planning_levels.each do |planning_level| %>
<ul>
<li>Planning Level: <%= planning_level.name %> with <%= planning_level.stories.count %> stories
<ul>
<% planning_level.stories.each do |story| %>
<li>Story: <%= story.name %></li>
<% end %>
</ul>
</li>
</ul>
<% end %>
添加CSS class
和id
属性可让您为元素添加样式,为您的UI提供一些天赋。