Sha256: 8c7961467cdc2ffd87b266979a777a9e7d3e18b2087943013ced85766c739ec0
Contents?: true
Size: 1.35 KB
Versions: 53
Compression:
Stored size: 1.35 KB
Contents
module Her module Model module NestedAttributes extend ActiveSupport::Concern module ClassMethods # Allow nested attributes for an association # # @example # class User # include Her::Model # # has_one :role # accepts_nested_attributes_for :role # end # # class Role # include Her::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 Her::Errors::AssociationUnknownError.new("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
53 entries across 53 versions & 4 rubygems