LoginSignup
6
4

More than 5 years have passed since last update.

RailsでModelの中身が表示されてしまう

Posted at

最近Ruby on Railsを勉強中です。

最近Railsチュートリアルを全部写経しました
https://medium.com/%E8%99%8E%E8%A6%96%E7%9C%88%E3%80%85%E3%81%A8/rails-%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB%E3%82%92%E5%85%A8%E9%83%A8%E3%82%84%E3%81%A3%E3%81%9F%E8%A9%B1-5cead29b43f1

初心者の自分が最初にハマったことを共有したいと思います

<%= と <%の使い分けに注意しよう

Railsで開発中にModelからデータを取得してViewに渡して、Viewでごにょごにょしているときにハマりました。

スクリーンショット 2017-12-22 13.06.23.png

なぜか画面にModelの中身がまるまる表示されていました。
書いていたソースは下記になります。

<%= @articles.each do |article| %>

  <p>
    <%= link_to article.title, edit_articles_url(id: article.id) %>
    <%= article.created_at %>
    <%= link_to "Delete", articles_url(id: article.id), :method => :delete %>
  </p>

<% end %>

原因わかる方いらっしゃいますか??

原因

原因は<%= @articles.each do |article| %> と書いていたことです。
<% @articles.each do |article| %>と書けば表示されなくなります。

この際いろいろ調べて見た

↑にあるとおり

<% 任意のコード %>
  ここのコードは評価されるだけで結果をテンプレートに返さない。
  重荷演算や制御構文の記述に利用。

<%= なんらかの値を返す式 %>
  式の評価結果をテンプレートに挿入。

ほうほう、勉強になりました。

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