我对 Rails 很陌生,但对 Ruby 有一些了解。如何在 Rails 的视图中显示数组的值?
我应该在哪里定义数组(模型或控制器)?另外,如何引用数组并在视图上的成员之间进行迭代?
我对 Rails 很陌生,但对 Ruby 有一些了解。如何在 Rails 的视图中显示数组的值?
我应该在哪里定义数组(模型或控制器)?另外,如何引用数组并在视图上的成员之间进行迭代?
您可以像这样循环遍历它:
<% @array.each do |element| %>
<li><%= element.whatever %></li>
<% end %>
但使用部分更习惯用语。创建一个代表元素的文件。该文件应与其他 new/show/edit/etc 视图位于同一视图目录中,并应使用下划线命名。例如,如果我有一个食物列表作为数组并且我想在索引视图上显示该列表,我将创建一个名为“_food.html.erb”的部分,其中包含给定食物的标记:
<div>
Name: <%= food.name %>
Calories <%= food.calories %>
</div>
然后在 index.html.erb 中,我会像这样渲染所有食物:
<%= render @foods %>
默认情况下,Rails 会查找部分元素,并为数组中的每个元素呈现一个。
说数组 = [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]