Witam,
Postanowiłem przeprowadzić małą refaktoryzację kodu i przenieść trochę ciężaru do modeli. Kod obecnie przedstawia się tak:
[code]#app/controllers/book_controller.rb
@booksassigment = Booksassigment.new
@booksassigment.set_assigment_and_save(current_user.id, @book.id)
#app/models/booksassigment.rb
def set_assigment(user_id, book_id)
self.user_id = user_id
self.book_id = book_id
end
def set_assigment_and_save(user_id, book_id)
set_assigment(user_id, book_id)
save
end[/code]
I chciałbym móc zrobić tak:
@booksassigment = Booksassigment.create_and_set_assigment_and_save(current_user.id, @book.id)
Niestety, jakbym nie próbował z metodami, wciąż mam problem, że takie metody nie istnieją. Czy ktoś mógłby podać przykład kodu, jak to zrobić?
To, co chce uzyskać, to wywołanie metody jednej, która tworzy obiekt klasy a następnie wywołuje set_assigment i save.
Mam nadzieję, że zbytnio nie zamieszałem
Druga sprawa, bardziej teoretyczna. Czy w ogóle warto tak łączyć metody?