1
0

はじめに

Ruby on Railsでは、<%= %>と<% %>は埋め込みRuby(ERB)テンプレート内でRubyコードをHTMLに組み込むためのものです。

<%= %>と<% %>の違いは

1. <%= %>(出力ありのERB):

<%= %>は、Rubyコードを評価し、その結果をHTML出力する場合に使います。これは戻り値のあるメソッドと考えることができます。
例: <%= @user.name %> は、@userインスタンス変数の名前を出力します。

2. <% %>(出力なしのERB):

<% %>は、Rubyコードを評価して結果を直接HTML出力せず実行したい場合に使います。 戻り値のないメソッド(void) だと考えればいいでしょう。
例: <% if @user.admin? %> 管理者 <% end %> は、ユーザーが管理者の場合にのみ「管理者」というテキストを表示します。

form_tag

下記コードを見てください。form_tagは一見 戻り値のないメソッド(void) に見えて、 <% %>を使うべきだと思うかもしれませんが、実際form_tagメソッドは<form>タグを出力するので、<%= %>を使います。

new.html.erb
<%= form_tag("/posts/create") do %>
  <textarea name="content"><%= @post.content %></textarea>
  <input type="submit" value="投稿">
<% end %>

まとめ

このように、<%= %>と<% %>の使い分けがRuby on RailsのテンプレートでのHTML生成と出力管理に役立ちます。

1
0
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
1
0