class ActionBlocks::ReferenceFieldBuilder
Attributes
association_name[RW]
Public Instance Methods
add_foreign_key_as_integer(parent)
click to toggle source
# 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)
click to toggle source
Calls superclass method
ActionBlocks::FieldBlock#before_build
# 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)
click to toggle source
# File lib/action_blocks/builders/model_builder.rb, line 401 def hashify(user) { type: :reference, id: @id } end
match_requirements(select_as_prefix = nil)
click to toggle source
# 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()
click to toggle source
# 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)
click to toggle source
# 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()
click to toggle source
# File lib/action_blocks/builders/model_builder.rb, line 375 def validate_association_name # puts @parent_model.active_model.reflections.keys.inspect # puts @association_name.to_s 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