--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: "Create a many_through_many association. Arguments:"
- !ruby/object:SM::Flow::LIST 
  contents: 
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: name - Same as associate, the name of the association.
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "through - The tables and keys to join between the current table and the associated table. Must be an array, with elements that are either 3 element arrays, or hashes with keys :table, :left, and :right. The required entries in the array/hash are:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "*"
      body: ":table (first array element) - The name of the table to join."
    - !ruby/struct:SM::Flow::LI 
      label: "*"
      body: ":left (middle array element) - The key joining the table to the previous table. Can use an array of symbols for a composite key association."
    - !ruby/struct:SM::Flow::LI 
      label: "*"
      body: ":right (last array element) - The key joining the table to the next table. Can use an array of symbols for a composite key association."
    type: :BULLET
  - !ruby/struct:SM::Flow::P 
    body: "If a hash is provided, the following keys are respected when using eager_graph:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "*"
      body: ":block - A proc to use as the block argument to join."
    - !ruby/struct:SM::Flow::LI 
      label: "*"
      body: ":conditions - Extra conditions to add to the JOIN ON clause. Must be a hash or array of two pairs."
    - !ruby/struct:SM::Flow::LI 
      label: "*"
      body: ":join_type - The join type to use for the join, defaults to :left_outer."
    - !ruby/struct:SM::Flow::LI 
      label: "*"
      body: ":only_conditions - Conditions to use for the join instead of the ones specified by the keys."
    type: :BULLET
  - !ruby/struct:SM::Flow::LI 
    label: "*"
    body: "opts - The options for the associaion. Takes the same options as associate, and supports these additional options:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "*"
      body: ":left_primary_key - column in current table that the first :left option in through points to, as a symbol. Defaults to primary key of current table. Can use an array of symbols for a composite key association."
    - !ruby/struct:SM::Flow::LI 
      label: "*"
      body: ":right_primary_key - column in associated table that the final :right option in through points to, as a symbol. Defaults to primary key of the associated table. Can use an array of symbols for a composite key association."
    - !ruby/struct:SM::Flow::LI 
      label: "*"
      body: ":uniq - Adds a after_load callback that makes the array of objects unique."
    type: :BULLET
  type: :BULLET
full_name: Sequel::Plugins::ManyThroughMany::ClassMethods#many_through_many
is_singleton: false
name: many_through_many
params: (name, through, opts={}, &block)
visibility: public
