Class: ActionBlocks::ReferenceFieldBuilder
Instance Attribute Summary collapse
Attributes inherited from FieldBlock
#field_type, #parent_model
Attributes inherited from BaseBuilder
#dsl_delegate, #id
Instance Method Summary
collapse
Methods inherited from FieldBlock
#key
Methods inherited from BlockType
#is_block?, #type
Methods inherited from BaseBuilder
#after_build, #after_load, array_fields, block_type, builds, builds_many, delegate_class, #evaluate, #freeze, includes_scheme_helpers, #initialize, #is_block?, #key, references, sets, sets_many, #ui_reference, #valid?
Instance Attribute Details
#association_name ⇒ Object
Returns the value of attribute association_name.
349
350
351
|
# File 'lib/action_blocks/builders/model_builder.rb', line 349
def association_name
@association_name
end
|
Instance Method Details
#add_foreign_key_as_integer(parent) ⇒ Object
361
362
363
364
365
|
# File 'lib/action_blocks/builders/model_builder.rb', line 361
def add_foreign_key_as_integer(parent)
if relation
parent.dsl_delegate.integer(relation.join_foreign_key.to_sym)
end
end
|
#before_build(parent, *args) ⇒ Object
353
354
355
356
357
358
359
|
# File 'lib/action_blocks/builders/model_builder.rb', line 353
def before_build(parent, *args)
super(parent, *args)
@association_name = args[0]
@field_type = 'reference'
@model_key = "model-#{args[1] || args[0]}"
add_foreign_key_as_integer(parent)
end
|
#hashify(user) ⇒ Object
401
402
403
404
405
406
|
# File 'lib/action_blocks/builders/model_builder.rb', line 401
def hashify(user)
{
type: :reference,
id: @id
}
end
|
#match_requirements(select_as_prefix = nil) ⇒ Object
395
396
397
398
399
|
# File 'lib/action_blocks/builders/model_builder.rb', line 395
def match_requirements(select_as_prefix = nil)
{
path: [select_as_prefix, [association_name, relation.join_primary_key].join('_').to_sym].compact.flatten,
}
end
|
#relation ⇒ Object
369
370
371
372
373
|
# File 'lib/action_blocks/builders/model_builder.rb', line 369
def relation
if @parent_model.active_model
@parent_model.active_model.reflections[@association_name.to_s]
end
end
|
#select_requirements(select_as_prefix = nil) ⇒ Object
387
388
389
390
391
392
393
|
# File 'lib/action_blocks/builders/model_builder.rb', line 387
def select_requirements(select_as_prefix = nil)
target_data_reqs = model.name_field.select_requirements([select_as_prefix, association_name].compact.join('_'))
{
field_name: association_name,
path: [association_name, target_data_reqs[:path]].flatten,
}
end
|
#validate_association_name ⇒ Object
375
376
377
378
379
380
381
382
383
384
385
|
# File 'lib/action_blocks/builders/model_builder.rb', line 375
def validate_association_name
unless relation
errors.add(:association_name, "Association #{@association_name.to_s} is not a valid relationship for model #{@parent_model.active_model.to_s}. Valid relations include: #{@parent_model.active_model.reflections.keys.inspect}")
end
unless relation && relation.belongs_to?
errors.add(:association_name, "Association #{@association_name.to_s} is not a valid belongs_to relationship")
end
end
|