我对Rails很新,但有一些Ruby理解。如何在View in Rails中显示数组的值?
我应该在哪里定义阵列(模型或控制器)?另外,如何引用数组并在View上的成员之间进行迭代?
答案 0 :(得分:13)
你可以像下面这样循环:
<% @array.each do |element| %>
<li><%= element.whatever %></li>
<% end %>
但使用偏爱更加惯用。创建表示该元素的文件。该文件应与其他新/ show / edit / etc视图位于同一视图目录中,并应使用下划线命名。例如,如果我有一个食物列表作为数组,我想在索引视图上显示列表,我会创建一个名为&#34; _food.html.erb&#34;它将包含给定食物的标记:
<div>
Name: <%= food.name %>
Calories <%= food.calories %>
</div>
然后在index.html.erb中,我会渲染所有的食物:
<%= render @foods %>
Rails默认会查找partial,并为数组中的每个元素渲染一个。
答案 1 :(得分:5)
说数组= [1,2,3]。你只需在erb标签内调用就可以在视图中显示它:
<%= array %> # [1,2,3]
如果你想迭代它:
<% array.each do |a| %>
<%= a %> Mississippi.
<% end %> # 1 Mississippi. 2 Mississippi 3 Mississippi.
或使用辅助方法:
<%= a.to_sentence %> # 1, 2, and 3
至于定义它们的位置,取决于它。如果它是静态列表,您可以在模型中定义它们,如下所示:
class Foo < ActiveRecord::Base
BAR = [1,2,3]
end
然后通过调用
在任何地方访问它们Foo::BAR
如果您只是该特定视图中的数组,则可以将其分配给控制器中的实例变量,如下所示:
class FooController < ApplicationController
def index
@array = [1,2,3]
end
end
然后从这样的视图中调用它:
<%= @array %> # [1,2,3]