jbe/bsw@0: Genre = mondelefant.new_class() jbe/bsw@0: Genre.table = 'genre' jbe/bsw@0: jbe/bsw@0: Genre:add_reference{ jbe/bsw@0: mode = '1m', -- one (1) Genre is used for many (m) Classifications jbe/bsw@0: to = "Classification", -- name of referenced model (using a string instead of reference avoids auto-loading here) jbe/bsw@0: this_key = 'id', -- own key in genre table jbe/bsw@0: that_key = 'genre_id', -- other key in classification table jbe/bsw@0: ref = 'classifications', -- name of reference jbe/bsw@0: back_ref = 'genre', -- each autoloaded Classification automatically refers back to the Genre jbe/bsw@0: default_order = '"media_id"' -- order Classifications by SQL expression "media_id" jbe/bsw@0: } jbe/bsw@0: jbe/bsw@0: Genre:add_reference{ jbe/bsw@0: mode = 'mm', -- many (m) Genres belong to many (m) Medium entries jbe/bsw@0: to = "Medium", -- name of referenced model (quoting avoids auto-loading here) jbe/bsw@0: this_key = 'id', -- (primary) key of genre table jbe/bsw@0: that_key = 'id', -- (primary) key of medium talbe jbe/bsw@0: connected_by_table = 'classification', -- table connecting genres with media jbe/bsw@0: connected_by_this_key = 'genre_id', -- key in connection table referencing genres jbe/bsw@0: connected_by_that_key = 'medium_id', -- key in connection table referencing media jbe/bsw@0: ref = 'media', -- name of reference jbe/bsw@0: back_ref = nil, -- not used for mm relation! jbe/bsw@0: default_order = '"medium"."name", "medium"."id"' -- mm references need qualified names in SQL order expression! jbe/bsw@0: }