LoginSignup
1
1

More than 3 years have passed since last update.

画像やタイトルなどいろいろな要素を全て同じリンクをさせる

Posted at

Controllers

app/controllers/item_controller.rb
class ItemController < ApplicationController
  def index
    @items = Article.all
  end
end
app/views/item/index.html.erb
<% @items.each do |item| %>
   <ul> 
      <li>
        <%= link_to item_path(item), class: 'hoge' do %>
          <% if item.image? %>
            <%= image_tag item.image.to_s %>
          <% else %>
            <%= image_tag 'no_image.png' %>
          <% end %>

          <h4><%= item.title %></h4>
          <p><%= item.sentence %></p>
        <% end %>
      </li>
    </ul>
<% end %>

基礎1:ヘルパーメソッド

railsはcrfの対策で下のようにコンパイルされる
「前」

app/views
<%= image_tag 'test.jpg', class: 'hoge' %>

「後」

app/views
<img src="/assets/test.jpg" class="hoge">

基礎2:link_to

メソッド 第一引数 第二引数 オプション
<%= link_to “Topページへ”, “root_path” method: :delete%>

*第一引数は表示テキスト
*第二引数はリンク先指定
*オプションのデフォルトはGET

基礎3:HTML要素などにリンク付け

<%= link_to root_path do %>
(html要素)*特に画像・アイコンなど
<% end %>

基礎4:1つずつ取り出して

@のついたインスタンス変数には通常複数のデータがハッシュで入っています。
1つずつ取り出すメソッドがeachです。

@A.each do |A|
処理
end
で間の処理を繰り返します。

3+4

<% @A.each do |A| %>
  <%= link_to do %>
  <% end %>
<% end %>

リンクのついたくさんのHTML要素が出来上がります。

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