| 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