module RailzLite::Associatable
Public Instance Methods
assoc_options()
click to toggle source
# File lib/railz_lite/models/associatable.rb, line 72 def assoc_options @assoc_options ||= {} @assoc_options end
belongs_to(name, options = {})
click to toggle source
# File lib/railz_lite/models/associatable.rb, line 51 def belongs_to(name, options = {}) options = BelongsToOptions.new(name, options) assoc_options[name] = options define_method(name) do foreign_key = send(options.foreign_key) primary_key = options.primary_key params = [[primary_key, foreign_key]].to_h options.model_class.where(params).first end end
has_many(name, options = {})
click to toggle source
# File lib/railz_lite/models/associatable.rb, line 62 def has_many(name, options = {}) options = HasManyOptions.new(name, self.name, options) define_method(name) do foreign_key = options.foreign_key primary_key = send(options.primary_key) params = [[foreign_key, primary_key]].to_h options.model_class.where(params) end end