:class_name - specify the class name of the association. Use it only if
that name can’t be inferred from the association name. So
has_and_belongs_to_many :projects will by default be linked to the Project
class, but if the real class name is SuperProject, you’ll have to specify
it with this option.
:join_table - specify the name of the join table if the default based on
lexical order isn’t what you want. WARNING: If you’re overwriting the
table name of either class, the table_name method MUST be declared
underneath any has_and_belongs_to_many declaration in order to work.
:foreign_key - specify the foreign key used for the association. By
default this is guessed to be the name of this class in lower-case and "_id"
suffixed. So a Person class that makes a has_and_belongs_to_many association
will use "person_id" as the default foreign_key.
:association_foreign_key - specify the association foreign key used for
the association. By default this is guessed to be the name of the associated
class in lower-case and "_id" suffixed. So if the associated class is
Project, the has_and_belongs_to_many association will use "project_id" as
the default association foreign_key.
:conditions - specify the conditions that the associated object must meet
in order to be included as a "WHERE" sql fragment, such as "authorized = 1".
:order - specify the order in which the associated objects are returned as
a "ORDER BY" sql fragment, such as "last_name, first_name DESC"
:uniq - if set to true, duplicate associated objects will be ignored by
accessors and query methods
:finder_sql - overwrite the default generated SQL used to fetch the
association with a manual one
:delete_sql - overwrite the default generated SQL used to remove links
between the associated classes with a manual one
:insert_sql - overwrite the default generated SQL used to add links
between the associated classes with a manual one
:extend - anonymous module for extending the proxy, see "Association
extensions".
:include - specify second-order associations that should be eager loaded
when the collection is loaded.
:group: An attribute name by which the result should be grouped. Uses the
GROUP BY SQL-clause.
:limit: An integer determining the limit on the number of rows that should
be returned.
:offset: An integer determining the offset from where the rows should be
fetched. So at 5, it would skip the first 4 rows.
:select: By default, this is * as in SELECT * FROM, but can be changed if
you for example want to do a join, but not include the joined columns.
Options for has_and_belongs_to_many
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment