#<%= %>
を<% %>
に変えただけで…
【アドバイスいただいたメンターさん】
あじーさん(@ajiajiaji1104)
https://twitter.com/ajiajiaji1104?s=20
【参考にさせていただいたQiita記事↓】
テンプレートでの動的処理について
https://qiita.com/chobi9999/items/a48e790952a0f183e91d
【動作環境】
macOS 10.15.6
Rails 6.0.3.3
Ruby 2.6.6
Ruby on Railsでスクール課題に取り組んでいた時のお話しです。
Railsアプリでデータベースの検索機能を実装していました。
Userモデルを作成し、カラムを「氏名(name)」「年齢(age)」として、データベースをマイグレーション。
初期データは「faker」を使用して投入し、いざ一覧表示ページを作成しました。
<%= search_form_for @q do |f| %>
<%= f.label :name_cont, "氏名" %>
<%= f.search_field :name_cont %>
<%= f.label :age_eq, "年齢" %>
<%= f.search_field :age_eq %>
<%= f.submit "検索" %>
<% end %>
<table>
<tbody>
<thead>
<tr>
<td>名前</td>
<td>年齢</td>
</tr>
</thead>
<%= @users.each do |user| %>
<tr>
<td><%= user.name %></td>
<td><%= user.age %></td>
</tr>
<% end %>
</tbody>
</table>
<%= paginate @users %>
そしていざ、Railsサーバーを立ち上げてみると、
あら、データベースが表示されてる!?
エラーは出ておらず、画面表示だけがおかしい…。
エラー文が出ていないため、間違いの箇所が分からない…。
教材を見返しても間違いが分からない…。
私は2日悩みました。
もっとメンターに早く相談しておけば…。
解決策は、先ほどのコードの中央やや下寄りにある、
<%= @users.each do |user| %>
を
<% @users.each do |user| %>
に変更しただけ。
わかりますか?
コード文の始まりの<%=
を <%
に変えただけです。
たったこれだけで、
きれいに表示されました。
もっとRailsの動的処理について、きちんと理解を深める必要がありそうです。
最後まで読んでいただき、ありがとうございました。
よかったらTwitterもやっていますので、興味のある方はフォローお願いします。
まるこ(@Maruko_HP)
https://twitter.com/Maruko_HP
プログラミング学習を通じて成長する未経験エンジニアの葛藤や、絶対に諦めない前向きマインドに触れられます。