module JpPrefecture::Base

Public Instance Methods

jp_prefecture(column_name, options = {}) click to toggle source

モデル内で使用するための設定を行う

変換対象のカラムを指定する:

class Place < ActiveRecord::Base
  include JpPrefecture
  jp_prefecture :prefecture_code
end

p = Place.new
p.prefecture_code = 1
p.prefecture
# => #<JpPrefecture::Prefecture:0x007fd0a3d10f30 @code=1, @name="北海道", @name_e="Hokkaido">

生成するメソッド名は method_name で指定する:

class Place < ActiveRecord::Base
  include JpPrefecture
  jp_prefecture :prefecture_code, method_name: :pref
end

p = Place.new
p.prefecture_code = 1
p.pref
# => #<JpPrefecture::Prefecture:0x007fcb8444dcc8 @code=1, @name="北海道", @name_e="Hokkaido">

@param [Symbol] column_name 変換対象のカラム @option options [Symbol] :method_name 生成するメソッド名。デフォルト: :prefecture

# File lib/jp_prefecture/base.rb, line 33
def jp_prefecture(column_name, options = {})
  column_name = column_name.to_sym if column_name.is_a?(String)
  method_name = options[:method_name] || :prefecture

  define_method method_name do
    JpPrefecture::Prefecture.find(send(column_name))
  end
end