Mam przykładowo modele Chapter->Page->Group,
Group jest rozróźniana nie przez domyślne id ale przez parę chapter_id i page_id (które jest numerem strony, nie jej id)
czy mozna jakoś elegancko zmienić model Page zeby wywolanie page.groups zwracalo odpowiednie grupy używając powyższego klucza ?
próbowałem w kontrolerze używać takiego kodu
[code]@groups = @page.groups.find_all_by_page_id_and_chapter_id(params[:page_id], params[:chapter_id])
dostaję:
SELECT * FROM groups
WHERE (groups
.chapter_id
= ‘5’ AND groups
.page_id
= ‘1’) AND (groups
.page_id = 1)[/code]
czyli szuka po foreing key i po moich warunkach, działa tylko gdy przypadkiem id i page_id jest takie same
dopiero :
@groups = Group.find_all_by_page_id_and_chapter_id(params[:page_id], params[:chapter_id])
daje poprawne rezultaty, ale wtedy cała magia ActiveRecord idzie się … przejść
przestaje też działać sortowanie które miałem dzięki
has_many :groups, :order => :position w PageController