facebook twitter hatena line email

Ruby/rails/テンプレート

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

erb

テンプレートフォーマット

foreach

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

if

<% if request.host == "hotehote.localhost" then %>
    analytics
<% end %>

変数表示

<%= name %>

リンク

以下のように指定

<%= link_to 'yahoo', 'ttp://yahoo.co.jp/' %>
<%= link_to user.name, 'users/' + user.id.to_s  %>

userのprikeyがidでidが1であれば"/users/1"へ

<%= link_to 'Show', user %>

以下の場合は"/users/1/edit"へ

<%= link_to 'Edit', edit_user_path(user) %>

edit_user_pathはroutesのprefixにある

$ rails routes
     Prefix Verb   URI Pattern                  Controller#Action
      users GET    /users(.:format)             users#index
            POST   /users(.:format)             users#create
   new_user GET    /users/new(.:format)         users#new
  edit_user GET    /users/:id/edit(.:format)    users#edit
       user GET    /users/:id(.:format)         users#show
            PATCH  /users/:id(.:format)         users#update
            PUT    /users/:id(.:format)         users#update
            DELETE /users/:id(.:format)         users#destroy

コメントアウト

<% # ここがコメントアウト %>

全体コメントアウト

<%
=begin
%>
   ここはコメントアウトされる
<%
=end
%>

以下のように一行で書く方法はng

<% =begin %>
<% =end %>

部分テンプレート

部分テンプレート呼び出し

<%= render('shared/adsense_300x600') %>

部分テンプレート記述場所 app/views/shared/adsense_300x600.html.erb

スマホ対応

app/views/layouts/application.html.erb の<head>タグの下に入れる

<meta name="viewport" content="width=device-width, initial-scale=1.0">