LoginSignup
0
0

More than 3 years have passed since last update.

[rails]繰り返した処理の回数をclassにインデックスとして付与する方法

Posted at

初めに

eachメソッドでテーブルから取得してきた値に対してそれぞれ違った処理をしたい!ときってありませんか?

例えば、、、

vegtables = [キャベツ,トマト,なす]

がデータベース上のテーブルに保存されていて、これをeachメソッドを使って値を取得し、"トマト"だけ赤色にしたい、boxの形を変更したい時など。

実装中にハマったので共有します。

結 論

each.with_indexメソッドを使う。

詳 細

コントローラーの記述は以下の通り

vegtables_controller.rb
class VegtablesController < ApplicationController
  def index
    @vegtables = Vegtable.all
  end

なお、vegtablesテーブルのveg_nameカラムには
veg_name=[キャベツ,レタス,きゅうり,トマト,なす,ホウレンソウ,タマネギ,ジャガイモ]
が入っています。

これにそれぞれ異なるclassを与えたいとき

index.html.erb
  <% i=0 %>
  <% @vegtables.each.with_index do |v, i| %>
    <div class="wrapper_<%= ++i %>">
      <%= v.veg_name %>
    </div>
  <% end %>

とすることで実装できました!

因みに、scssに書いたclassのnameは
.wrapper_0{}
.wrapper_1{}
.wrapper_2{}
・・・
などです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0