ihatov08 blog

プログラミング初心者だけどRailsとSwiftマスターします

初めのアルファベットに該当するレコードのみ表示するメソッドの定義の仕方

models

  def self.by_letter(letter)
    where("lastname LIKE ?", "#{letter}%").order(:lastname)
  end

controller

  def index
    if params[:letter]
      @contacts = Contact.by_letter(params[:letter])
    else
      @contacts = Contact.order('lastname, firstname')
    end
  end

view

    <% ('A'..'Z').each do |letter| %>
      <%= link_to letter, contacts_path(letter: letter) %>
    <% end %>
    <%= link_to 'All', contacts_path %>

bootstrapも適用すれば、こんな感じのviewを出力してくれる。 f:id:ihatov08:20160713160600p:plain