Chciałbym wiedzieć, czy możliwe jest wywołanie metody z modelu po użyciu find.Wywołanie metody w modelu po znalezieniu w Ruby on Rails
Coś takiego jak after_save
, ale after_find
.
Dziękuję, Gabriel.
Chciałbym wiedzieć, czy możliwe jest wywołanie metody z modelu po użyciu find.Wywołanie metody w modelu po znalezieniu w Ruby on Rails
Coś takiego jak after_save
, ale after_find
.
Dziękuję, Gabriel.
Edit: Dla Rails> = 3, patrz odpowiedź z @-nic specjalnego tutaj
Jest. Wraz z after_initialize
, after_find
jest jednak specjalny przypadek. Musisz zdefiniować metodę, after_find :some_method
to za mało. To powinno jednak zadziałać:
class Post < ActiveRecord::Base
def after_find
# do something here
end
end
Możesz przeczytać więcej na ten temat w the API.
Co ciekawe, to wywoła metodę dwukrotnie ... dowiedziałem się, że to jedna z trudniejszych metod.
class Post < ActiveRecord::Base
after_find :after_find
def after_find
# do something here
end
end
Obecnie ((26.04.2012) jest to właściwa droga (i pracy), aby to zrobić:
class SomeClass < ActiveRecord::Base
after_find :do_something
def do_something
# code
end
end
Jeśli potrzebujesz znaleziony obiekt w swojej metodzie:
class SomeClass < ActiveRecord::Base
after_find{ |o| do_something(o) }
def do_something(o)
# ...
end
end
Więcej informacji: http://guides.rubyonrails.org/active_record_callbacks.html#after-initialize-and-after-find
Dziękuję. –