有一个模型Company
有很多DailyDatum
。
我想在companies/:id/daily_data
和 中显示每日数据daily_data/index
。但是在公司的页面中我不想显示company.name
列。
<tr>
<td><%= daily_datum.company.name %></td>
# This company.name needs to be shown when the partial is called from daily data index.
<td><%= daily_datum.column1 %></td>
<td><%= daily_datum.column2 %></td>
</tr>
<table>
<thead>
<tr>
<th>Company Name</th>
<th>Daily Datum1</th>
<th>Daily Datum2</th>
</tr>
</thead>
<%= render @daily_data %>
</table>
<table>
<thead>
<tr>
<!--<th>Company Name</th>-->
<th>Daily Datum1</th>
<th>Daily Datum2</th>
</tr>
</thead>
<%= render @daily_data %>
</table>
我该如何处理这样的情况?我需要创建另一个部分 HTML 吗?
这可能有点矫枉过正,因为您只是尝试有条件地渲染一个字段,但“正确”的方法是创建一个助手。
我建议创建一个助手来有条件地渲染两个部分之一,@daily_data
具体取决于path
.
company_helper.rb
def is_companies_index_path?
current_page?(companies_index_url)
end
def is_companies_show_path?
current_page?(companies_show_url)
end
def render_appropriate_partial
render 'daily_data_a' if is_companies_index_path?
render 'daily_data_b' if is_companies_show_path?
end
然后在您的视图中,您可以简单地调用:
<% render_appropriate_partial %>
它将根据您所在的路由/网址呈现适当的部分。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句