<% %> / <%= %>ってなんだ
課題をこなしてく中で、しれっと出てきた「<%= %>」が分からず少し調べてみたノートがまとまっていたので、備忘録として残しておきます。
Railsの.erbという形式のファイルでは、<% %> <%= %>と囲むことで、HTMLファイルにRubyのコードを埋め込めるらしいです。
(erb = Embedded Ruby (=埋め込みRuby)の略)。
例えば、下記のコードを入力すると、
- <% %> :変数の定義などに使用する
- <%= %> :変数の値などに使用する
top.html.erb
<% language = "Ruby" %>
<P><%= language %>を学ぶ</P>
↓結果
localhost:3001
となります。
また、「<% language = "Ruby" %>」の変数の定義は、アクションで定義することが一般的です。
controller
def top
@language = Ruby
end
top.html.erb
<%= @language %>
※アクションで定義したviewの変数に「@」をつけることを忘れないように!
<%= form_for %>の使い方
top.html.erb
<%= form_for ('モデルクラスのインスタンス') do |f| %>
フォーム内容記入
<% end %>
↓ コードに直すと
top.html.erb
<%= form_for (@user) do |f| %>
<% f.text_field :name %>
<% f.submit %>
<% end %>
という感じです。
top.html.erb
<form class="top">
<input name="">
</form>
という形でもかけますが、<%= form_for %>のほうが短く書けますし、セキュリティーも高まるのでおすすめです。
参考記事
もっと詳しく<% %>について書いていただいてる方がいました。ありがとうございます。
Railsのerbで使われる記号の意味