Module Her::Model::Associations::ClassMethods
In: lib/her/model/associations.rb

Methods

Public Instance methods

Return @_her_associations, lazily initialized with copy of the superclass’ her_associations, or an empty hash.

@private

Define a belongs_to association.

@param [Symbol] name The name of the method added to resources @param [Hash] opts Options @option opts [String] :class_name The name of the class to map objects to @option opts [Symbol] :data_key The attribute where the data is stored @option opts [Path] :path The relative path where to fetch the data @option opts [Symbol] :foreign_key The foreign key used to build the `:id` part of the path (defaults to `{name}_id`)

@example

  class User
    include Her::Model
    belongs_to :team, :class_name => "Group"
  end

  class Group
    include Her::Model
  end

  @user = User.find(1) # => #<User(users/1) id=1 team_id=2 name="Tobias">
  @user.team # => #<Team(teams/2) id=2 name="Developers">
  # Fetched via GET "/teams/2"

Define an has_many association.

@param [Symbol] name The name of the method added to resources @param [Hash] opts Options @option opts [String] :class_name The name of the class to map objects to @option opts [Symbol] :data_key The attribute where the data is stored @option opts [Path] :path The relative path where to fetch the data (defaults to `/{name}`)

@example

  class User
    include Her::Model
    has_many :articles
  end

  class Article
    include Her::Model
  end

  @user = User.find(1)
  @user.articles # => [#<Article(articles/2) id=2 title="Hello world.">]
  # Fetched via GET "/users/1/articles"

Define an has_one association.

@param [Symbol] name The name of the method added to resources @param [Hash] opts Options @option opts [String] :class_name The name of the class to map objects to @option opts [Symbol] :data_key The attribute where the data is stored @option opts [Path] :path The relative path where to fetch the data (defaults to `/{name}`)

@example

  class User
    include Her::Model
    has_one :organization
  end

  class Organization
    include Her::Model
  end

  @user = User.find(1)
  @user.organization # => #<Organization(organizations/2) id=2 name="Foobar Inc.">
  # Fetched via GET "/users/1/organization"

Parse associations data after initializing a new object

@private

[Validate]