Class | ItemPlural |
In: |
app/models/item_plural.rb
|
Parent: | Item |
複数の構成要素をもつ項目のモデル。
カレンダー参照を行うかどうかを判定する。
# File app/models/item_plural.rb, line 128 128: def calendar? 129: false 130: end
checkbox 形式を利用するかどうか判定する。
# File app/models/item_plural.rb, line 133 133: def checkbox? 134: false 135: end
データを返すためのメソッド名を返す。
# File app/models/item_plural.rb, line 143 143: def data_method_name 144: input_parameter.pluralize 145: end
データの単位となるモデルのクラスを返す。
# File app/models/item_plural.rb, line 138 138: def datum_class 139: input_parameter.classify.constantize 140: end
ユーザーの言語での名前を返す。
# File app/models/item_plural.rb, line 108 108: def human_name 109: name.blank? ? column_name : name 110: end
並び替えを指定する文字列または false を返す。
# File app/models/item_plural.rb, line 123 123: def order 124: false 125: end
# File app/models/item_plural.rb, line 103 103: def picker_field(it, name) 104: detail? ? "#{input_parameter}#{id}_#{name}" : "#{input_parameter}#{id}" 105: end
入力が必須かどうかを判定する。
# File app/models/item_plural.rb, line 113 113: def required? 114: validates_presence? # FIXME 115: end
(権限が許せば)インスタンスに属性を設定する。
# File app/models/item_plural.rb, line 118 118: def set_attributes(x, attr) 119: x.__send__("#{column_name}=", attr[column_name.to_sym]) if writable? 120: end
対象 it の表示に適したデータを返す。
# File app/models/item_plural.rb, line 148 148: def to_data(it) 149: value = it.attributes[column_name] 150: arr = value.split(',').map {|id| datum_class.find(id) rescue nil}.compact 151: return arr.map(&:name).join(",") 152: end