最近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でごにょごにょしているときにハマりました。
なぜか画面に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| %>
と書けば表示されなくなります。
この際いろいろ調べて見た
↑にあるとおり
<% 任意のコード %>
ここのコードは評価されるだけで結果をテンプレートに返さない。
重荷演算や制御構文の記述に利用。
<%= なんらかの値を返す式 %>
式の評価結果をテンプレートに挿入。
ほうほう、勉強になりました。