8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'app/decorators/infold/model_association_decorator.rb', line 8
def code_on_model(kind)
foreign_key = primary_key = class_name = ''
unless foreign_key_column.name == "#{parent_model.name.underscore}_id"
foreign_key = ", foreign_key: '#{foreign_key_column.name}'"
end
unless primary_key_column&.name.to_s == 'id'
primary_key = ", primary_key: '#{primary_key_column.name}'"
end
dependent = ", dependent: :#{dependent_kind.presence || 'destroy'}"
if kind == :parent
unless belongs_name == parent_model.name.underscore
class_name = ", class_name: #{parent_model.name}.name"
end
" belongs_to :#{belongs_name}#{class_name}#{foreign_key}#{primary_key}, optional: true\n"
elsif has_kind_one?
unless has_name == model.name.underscore
class_name = ", class_name: #{model.name}.name"
end
" has_one :#{has_name}#{class_name}#{foreign_key}#{primary_key}#{dependent}\n"
else
unless has_name == model.name_pluralize
class_name = ", class_name: #{model.name}.name"
end
" has_many :#{has_name}#{class_name}#{foreign_key}#{primary_key}#{dependent}\n"
end
end
|