LoginSignup
4
2

More than 3 years have passed since last update.

Railsの動的処理を見直しておかしなHTML表示を解決

Posted at

<%=  %><%  %>に変えただけで…

【アドバイスいただいたメンターさん】
あじーさん(@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」を使用して投入し、いざ一覧表示ページを作成しました。

index.html.erb
<%= 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サーバーを立ち上げてみると、

1.png

あら、データベースが表示されてる!?

エラーは出ておらず、画面表示だけがおかしい…。
エラー文が出ていないため、間違いの箇所が分からない…。
教材を見返しても間違いが分からない…。

私は2日悩みました。
もっとメンターに早く相談しておけば…。

解決策は、先ほどのコードの中央やや下寄りにある、

    <%= @users.each do |user| %>

    <% @users.each do |user| %>

に変更しただけ。

わかりますか?

コード文の始まりの<%=<%に変えただけです。

たったこれだけで、

スクリーンショット 2020-10-05 10.10.08.png

きれいに表示されました。

もっとRailsの動的処理について、きちんと理解を深める必要がありそうです。


最後まで読んでいただき、ありがとうございました。

よかったらTwitterもやっていますので、興味のある方はフォローお願いします。
まるこ(@Maruko_HP)
https://twitter.com/Maruko_HP
プログラミング学習を通じて成長する未経験エンジニアの葛藤や、絶対に諦めない前向きマインドに触れられます。


4
2
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
4
2