私は日付で複数の表を作成していますが、条件の数によってHTML表の行を異なる色にしたいとします。Railsで表の行の色を変更する
<% (Date.current - 6.months..Date.current + 6.months).each do |date|%>
<% if !Shift.where(date: date).blank? %>
<% @shifts = LaunchShift.where(date: date).all.order(start_time: :asc, booked: :desc) %>
<h2><%= date.strftime('%e %b %Y') %></h2>
<div class="table-responsive">
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>...</th>
</tr>
</thead>
<% @shifts.each_with_index do |shift, index| %>
<% if shift.booked? %>
<% @booker = Member.find(shift.booked_by) %>
<% end %>
<tbody>
<% if shift.booked? %> <---Trying this for changing colour
<tr style="background-color:red">
<% else %>
<tr>
<% end %>
<td><%= shift.start_time.strftime("%H:%M") %></td>
<% if shift.booked? %>
<td>Booked</td>
<td><%= link_to @booker.name, member_path(@booker) %></td>
<% else %>
<td>Free</td>
<td></td>
<% end %>
[...]
</tr>
</tbody>
<% end %>
</table>
</div>
<% end %>
しかしshifts.bookedかかわらのみ予約したとしてマークされた行のいくつかは、赤:this questionの助けを借りて、私は私のシフトビューに次のように試してみましたか? Trueを返します。このアプローチは、私が思っているのとは違った働きをしていますか?これを行うにはJS/JQuery(それらを知らない)を使用しない方が良い方法がありますか?何かアドバイス? ありがとうございました!
でshift_helper.rbファイルを作成し、これは良い方法である、ありがとうございます。しかし、問題は論理がどこかで間違っているということです。すべての予約シフトが赤ではなく、利用可能なシフトがすべて灰色ではありません。これは、テーブルを作成するためのループ内のループとは何か関係がありますか?データは正しく表示されますが、何らかの理由でifステートメントが常に機能するとは限りません。何か案は? – SKR
ステートメントが機能しない場合は? – ashvin
@SKRデータが正しく表示されている場合は、条件が正しいはずです。 シフトが予約されていれば赤色が適用されます。