# 解決したいこと
ActiveHashでデータベース上にあるデータをビューに表示するときに番号ではなくActiveHashで設定した番号(例 region_idが3なら 青森県)みたいなような表示ができるように実装したい
ruby
1<%= gym.region.name%>
ruby
1<%= gym.region_id %>
この場合はデータベースに保存されている番号がそのまま出力される
該当するコントローラーの写真
ruby
1class GymInformationController < ApplicationController 2 before_action :authenticate_user!, only: %i[new create] 3 def index 4 @gyms = GymInformation.includes(:user).order('created_at DESC') 5 end 6 7 def new 8 @gym = GymInformation.new 9 end 10 11 def create 12 @gym = GymInformation.new(gym_information_params) 13 if @gym.save 14 redirect_to root_path 15 else 16 render :new 17 end 18 end 19 20 def show 21 @gym = GymInformation.includes(:user) 22 end 23 24 private 25 26 def gym_information_params 27 params.require(:gym_information).permit(:boulder_or_lead_id, :name, :region_id, :address, :grade_sence_id, 28 :people_day_id, :people_time1_id, :people_time2_id, :people_vibe_id, :clerk_vibe_id, :other, images: []).merge(user_id: current_user.id) 29 end 30end 31
該当するモデルの写真
ruby
1class GymInformation < ApplicationRecord 2 belongs_to :user 3 has_many_attached :images 4 extend ActiveHash::Associations::ActiveRecordExtensions 5 6 with_options presence: true do 7 validates :images 8 validates :name 9 validates :address 10 with_options numericality: { other_than: 1 } do 11 validates :boulder_or_lead_id 12 validates :region_id 13 validates :grade_sence_id 14 validates :people_day_id 15 validates :people_day_id 16 validates :people_time1_id 17 validates :people_time2_id 18 validates :people_vibe_id 19 validates :clerk_vibe_id 20 end 21 end 22 23 extend ActiveHash::Associations::ActiveRecordExtensions 24 belongs_to_active_hash :boulder_or_lead_id 25 belongs_to_active_hash :region_id 26 belongs_to_active_hash :grade_sence_id 27 belongs_to_active_hash :people_day_id 28 belongs_to_active_hash :people_time1_id 29 belongs_to_active_hash :people_time2_id 30 belongs_to_active_hash :people_vibe_id 31 belongs_to_active_hash :clerk_vibe_id 32end
#Active Hashのモデルの写真
ruby
1class Region < ActiveHash::Base 2 self.data = [ 3 { id: 1, name: '--' }, 4 { id: 2, name: '北海道' }, 5 { id: 3, name: '青森県' }, 6 { id: 4, name: '岩手県' }, 7 { id: 5, name: '宮城県' }, 8 { id: 6, name: '秋田県' }, 9 { id: 7, name: '山形県' }, 10 { id: 8, name: '福島県' }, 11 { id: 9, name: '茨城県' }, 12 { id: 10, name: '栃木県' }, 13 { id: 11, name: '群馬県' }, 14 { id: 12, name: '埼玉県' }, 15 { id: 13, name: '千葉県' }, 16 { id: 14, name: '東京都' }, 17 { id: 15, name: '神奈川県' }, 18 { id: 16, name: '新潟県' }, 19 { id: 17, name: '富山県' }, 20 { id: 18, name: '石川県' }, 21 { id: 19, name: '福井県' }, 22 { id: 20, name: '山梨県' }, 23 { id: 21, name: '長野県' }, 24 { id: 22, name: '岐阜県' }, 25 { id: 23, name: '静岡県' }, 26 { id: 24, name: '愛知県' }, 27 { id: 25, name: '三重県' }, 28 { id: 26, name: '滋賀県' }, 29 { id: 27, name: '京都府' }, 30 { id: 28, name: '大阪府' }, 31 { id: 29, name: '兵庫県' }, 32 { id: 30, name: '奈良県' }, 33 { id: 31, name: '和歌山県' }, 34 { id: 32, name: '鳥取県' }, 35 { id: 33, name: '島根県' }, 36 { id: 34, name: '岡山県' }, 37 { id: 35, name: '広島県' }, 38 { id: 36, name: '山口県' }, 39 { id: 37, name: '徳島県' }, 40 { id: 38, name: '香川県' }, 41 { id: 39, name: '愛媛県' }, 42 { id: 40, name: '高知県' }, 43 { id: 41, name: '福岡県' }, 44 { id: 42, name: '佐賀県' }, 45 { id: 43, name: '長崎県' }, 46 { id: 44, name: '熊本県' }, 47 { id: 45, name: '大分県' }, 48 { id: 46, name: '宮崎県' }, 49 { id: 47, name: '鹿児島県' }, 50 { id: 48, name: '沖縄県' } 51 ] 52 53 include ActiveHash::Associations 54 has_many :users 55 has_many :gym_information 56end
回答1件
あなたの回答
tips
プレビュー