Sha256: 7abc83f11c6ad786f775a20bd10bdddc3860b1340762ee432884f991c7b69fe9
Contents?: true
Size: 1.37 KB
Versions: 1
Compression:
Stored size: 1.37 KB
Contents
module Restorm module Model module NestedAttributes extend ActiveSupport::Concern module ClassMethods # Allow nested attributes for an association # # @example # class User # include Restorm::Model # # has_one :role # accepts_nested_attributes_for :role # end # # class Role # include Restorm::Model # end # # user = User.new(name: "Tobias", role_attributes: { title: "moderator" }) # user.role # => #<Role title="moderator"> def accepts_nested_attributes_for(*associations) allowed_association_names = association_names associations.each do |association_name| unless allowed_association_names.include?(association_name) raise Restorm::Errors::AssociationUnknownError, "Unknown association name :#{association_name}" end class_eval <<-RUBY, __FILE__, __LINE__ + 1 if method_defined?(:#{association_name}_attributes=) remove_method(:#{association_name}_attributes=) end def #{association_name}_attributes=(attributes) self.#{association_name}.assign_nested_attributes(attributes) end RUBY end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
restorm-1.0.0 | lib/restorm/model/nested_attributes.rb |