Class | ItemPolymorphic |
In: |
app/models/item_polymorphic.rb
|
Parent: | Item |
Polymorphic な関連付けによる項目のモデル。
カレンダー参照を行うかどうかを判定する。
# File app/models/item_polymorphic.rb, line 133 133: def calendar? 134: false 135: end
checkbox 形式を利用するかどうか判定する。
# File app/models/item_polymorphic.rb, line 138 138: def checkbox? 139: false 140: end
ユーザーの言語での名前を返す。
# File app/models/item_polymorphic.rb, line 108 108: def human_name 109: name.blank? ? column_name : name 110: end
並び替えを指定する文字列または false を返す。
# File app/models/item_polymorphic.rb, line 128 128: def order 129: false 130: end
# File app/models/item_polymorphic.rb, line 103 103: def picker_field(it, name) 104: detail? ? "#{input_parameter}#{id}_#{name}" : "#{input_parameter}#{id}" 105: end
外部参照を行うカラムに対応している場合はそのクラスを返す。 さもなくば false を返す。
# File app/models/item_polymorphic.rb, line 144 144: def reference(x=nil) 145: x.__send__("#{column_name}_type").constantize 146: end
入力が必須かどうかを判定する。
# File app/models/item_polymorphic.rb, line 113 113: def required? 114: validates_presence? # FIXME 115: end
(権限が許せば)インスタンスに属性を設定する。
# File app/models/item_polymorphic.rb, line 118 118: def set_attributes(x, attr) 119: if writable? 120: %w|id type|.each do |k| 121: key = "#{column_name}_#{k}" 122: x.__send__("#{key}=", attr[key.to_sym]) 123: end 124: end 125: end
対象 it の表示に適したデータを返す。
# File app/models/item_polymorphic.rb, line 149 149: def to_data(it) 150: value = it.__send__(column_name) 151: value ? value.name : "" 152: end