0
0

More than 3 years have passed since last update.

ActiveHashの特定の数字を表示させない(条件分岐)

Posted at

はじめに

スクリーンショット 2021-07-20 19.52.30(2).png
スクリーンショット 2021-07-20 19.52.54(2).png

hotel_type.rb

class HotelType < ActiveHash::Base
  self.data = [
    { id: 1, name: '選択して下さい' },
    { id: 2, name: '宿泊施設ではない' },
    { id: 3, name: 'ホテル' },
    { id: 4, name: '旅館' },
    { id: 5, name: 'コテージ' },
    { id: 6, name: 'メゾネット' },
    { id: 7, name: 'アネックス' },
    { id: 8, name: '民泊' },
    { id: 9, name: 'キャンプ' },
    { id: 10, name: '農家民泊' },
    { id: 11, name: '国民宿舎' },
    { id: 12, name: '休暇村' },
    { id: 13, name: 'その他' }
  ]

  include ActiveHash::Associations
  has_many :model
end

このように宿泊施設ではないを選んだ時-が出るようにしたいなと思い、条件分岐を使って表示させました。

最初から{ id: 2, name: '-' }こうしろよと意見があると思いますが意味があってこのようにしたのでご了承下さい・・・

やった事

  • 宿泊施設ではないを選んだ時、-が表示される

  • それ以外は通常通り表示される

この事から条件分岐が必要とする事が分かりました。

<% if 条件式%>
  <p>-</p>
 <%else%>
  <%= @model.hotel_type.name %>
<% end %>

こんな感じになると思います。

結論

ActiveHashは数字がDBに保存されます。なので数字で条件式を作ります。

if @model.hotel_type_id == 2

この条件式ではhotel_type_idのidが2だった場合という形になります。

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