7

私はRailsを初めて使用しますが、Rubyについてある程度理解しています。Railsのビューに配列の値を表示するにはどうすればよいですか?

アレイ(モデルまたはコントローラー)はどこで定義する必要がありますか?また、配列を参照して、ビューのメンバー間で反復するにはどうすればよいですか?

4

2 に答える 2

14

次のようにループすることができます。

<% @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つレンダリングします。

于 2012-11-01T21:37:45.717 に答える
6

配列=[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]
于 2012-11-01T21:36:03.983 に答える