Jak w temacie. Przykładowo, mam model User i stworzoną przeze mnie metodę get_history, która zaciąga dane z tabeli histories(jeżeli nie zostały jeszcze załadowane) i zwraca je.
Pobieram wszystkich użytkowników @users = User.all i mam kolekcję ([]:ActiveRecord::Relation).
Teraz chciałbym odpalić metodę np. get_history_all_user która przeleci po wszystkich obiektach User i zaciągnie dane. Tu pojawia się moje pytanie jak dodać tą metodę.
użyj scope: http://api.rubyonrails.org/classes/ActiveRecord/Scoping/Named/ClassMethods.html
najlepiej jakbyś konkretnie podał fragment kodu.
Czemu nie zrobisz tego przez zwykłą relację pomiędzy modelami User i History?
# model
class User < AR::Base
has_many :histories
end
class History < AR::Base
belongs_to :user
end
# controller
class UsersController < ApplicationController
def index
@users = User.includes(:histories)
end
end
Zlw masz racje, po prostu problem jest bardziej złożony, a ja źle sprecyzowałem zagadnienie.
Wafcio dzięki to jest to czego szukałem.