私は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つレンダリングします。
配列=[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]