やりたいこと
Railsで質問待ちアプリを作っている.ユーザが質問を登録したらテーブルに表示される.
post
テーブルにsituation
カラムが入っており,この値が対応中
のときにテーブルの背景の色を変えたい.
結論
色々試したが,最終的には以下のコードにたどり着いた.
<% if post.situation == "対応中" %>
<tr style="background-color: #FACAC8;"> <%# 背景をピンクにする %>
<% else %>
<tr>
<% end %>
試したこと
JavaScriptの:content
を使う方法を試した.
jQueryの導入
1. jquery-railsのインストール
Gemfile
gem 'jquery-rails'
ターミナル
bunsle install
2. application.jsの編集
//= require jquery
を追記する.このときに書く順番注意.
//= require jquery
//= require rails-ujs
//= require activestorage
//= require turbolinks
//= require_tree .
ビューファイルの変更(テーブルの色を変える)
<script type="text/javascript">
$('td:contains("対応中")').parent("tr").css("background-color", "#FACAC8");
</script>
この方法では,最後に追加されたデータには色付けできなかった.(最後に追加されたデータ以外は正しく色が変わった)キャッシュの削除など色々試したができなかったため,:content
を使わない方法にした.