Class | ItemPolymorphic
In: | app/models/item_polymorphic.rb
Parent: | Item

Polymorphic な関連付けによる項目のモデル。

### Methods

calendar? checkbox? human_name order picker_field reference required? set_attributes to_data type_name

### Included Modules

Condition

### Public Instance methods

calendar?()

カレンダー参照を行うかどうかを判定する。

[Source]

         # File app/models/item_polymorphic.rb, line 133
    133:   def calendar?
    134:     false
    135:   end

checkbox?()

checkbox 形式を利用するかどうか判定する。

[Source]

         # File app/models/item_polymorphic.rb, line 138
    138:   def checkbox?
    139:     false
    140:   end

human_name()

ユーザーの言語での名前を返す。

[Source]

         # File app/models/item_polymorphic.rb, line 108
    108:   def human_name
    109:     name.blank? ? column_name : name
    110:   end

order()

並び替えを指定する文字列または `false` を返す。

[Source]

         # File app/models/item_polymorphic.rb, line 128
    128:   def order
    129:     false
    130:   end

picker_field(it, name)

[Source]

         # 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

reference(x=nil)

外部参照を行うカラムに対応している場合はそのクラスを返す。 さもなくば false を返す。

[Source]

         # File app/models/item_polymorphic.rb, line 144
    144:   def reference(x=nil)
    145:     x.__send__("#{column_name}_type").constantize
    146:   end

required?()

入力が必須かどうかを判定する。

[Source]

         # File app/models/item_polymorphic.rb, line 113
    113:   def required?
    114:     validates_presence? # FIXME
    115:   end

set_attributes(x, attr)

(権限が許せば)インスタンスに属性を設定する。

[Source]

         # 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

to_data(it)

対象 it の表示に適したデータを返す。

[Source]

         # 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

type_name()

種類の名前を返す。

[Source]

         # File app/models/item_polymorphic.rb, line 99
     99:   def type_name
    100:     s_("Item|Polymorphic")
    101:   end

[Validate]