| 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