我有一个带有一些字段的表单,一个处理此表单数据的控制器和一个显示结果的视图。
在控制器中,我有一个方法
def formsent
@a = param[:a_field]
@b = param[:b_field]
@c = param[:c_field]
@d = {aze => "something" ... }
end
查看:
<table>
<tr>
<th><%= @a %></th>
<th><%= @b %></th>
<th><%= @c %></th>
</tr>
<% @d.each do |k,v| %>
<tr>
<th><%= k %></th>
<th><%= v %></th>
<th>Something</th>
</tr>
<% end %>
</table>
它是什么......但仅仅是原则。
现在我想用两个不同的字段显示两次视图。 因为我想比较数据。
RoR说:不要重复自己,我不知道如何处理相同的formsent
,但在一个字段中具有不同的值。 (我将有两种相同的形式)
问题:如何使用不同的值显示相同的视图? (不重复自己) 值可以是字符串,整数,散列或数组。
可能不清楚,我很抱歉。
谢谢。
答案 0 :(得分:4)
How to show the same view with different values ? (without repeat myself) The values can be string, integer, hash or array.
创建一个包含代码的部分名称_sample.html.erb
<table>
<tr>
<th><%= a %></th>
<th><%= b %></th>
<th><%= c %></th>
</tr>
<% d.each do |k,v| %>
<tr>
<th><%= k %></th>
<th><%= v %></th>
<th>Something</th>
</tr>
<% end %>
</table>
现在在你的视图中调用此部分两次传递不同的本地,如:
<%= render partial: "sample", locals: {a: v1, b: v2, c: v3, d: v4} %> // where v1,v2,v3,v4 are instance variables set in controller
<%= render partial: "sample", locals: {a: v5, b: v6, c: v7, d: v8} %> // where v5,v6,v7,v8 are instance variables set in controller