我有两种类型使用STI模型 - 单表继承
class Entry < ActiveRecord::Base
belongs_to :cycle
class Cycle < Entry
has_many :entries
在cycle / show.html.erb中,我有一个典型的表格,显示属于这个周期的所有条目。
<% @cycle.entries.each do |entry| %>
<table>display rows of data from entries</table>
<% end %>
是否有一种干净的方法我可以在表的第一行中包含父循环数据,而不用@ cycle.value重复标记
答案 0 :(得分:1)
嗯,这些信息可用,只是前缀为@cycle
而不是entry
......
<li><%= entry.description %></li>
<li><$= @cycle.description %></ul>
... @cycle属性在每个each
循环中都可用。这假设您正在循环@cycle.entries
,如您的示例所示。
答案 1 :(得分:1)
是的,所以将“显示数据行”放入一个名为“_table_lines”的部分中,其中您将模型称为“对象”
(例如
<ul>
<li><%= object.description %></li>
<li><$= object.created_at %></li>
</ul>
)
然后
<%= render partial: 'table_lines', locals: {object: @cycle} %>
<% @cycle.entries.each do |entry| %>
<%= render partial: 'table_lines', locals: {object: entry} %>
<% end %>