Tôi muốn biết nếu có thể gọi một phương thức từ một mô hình sau khi sử dụng tìm.Gọi một phương thức trong mô hình sau khi tìm thấy trong Ruby on Rails
Giống như after_save
, nhưng after_find
.
Cảm ơn bạn, Gabriel.
Tôi muốn biết nếu có thể gọi một phương thức từ một mô hình sau khi sử dụng tìm.Gọi một phương thức trong mô hình sau khi tìm thấy trong Ruby on Rails
Giống như after_save
, nhưng after_find
.
Cảm ơn bạn, Gabriel.
Edit: Đối với Rails> = 3, xem câu trả lời từ @ gì-đặc biệt-đây
Có. Cùng với after_initialize
, after_find
là trường hợp đặc biệt. Bạn phải xác định phương thức, after_find :some_method
là không đủ. Điều này sẽ hoạt động, mặc dù:
class Post < ActiveRecord::Base
def after_find
# do something here
end
end
Bạn có thể đọc thêm về nó trong the API.
Điều thú vị là, điều này sẽ gọi phương thức hai lần ... đã học được rằng một cách khó khăn.
class Post < ActiveRecord::Base
after_find :after_find
def after_find
# do something here
end
end
Ngày nay ((2012/04/26) đây là cách thích hợp (và làm việc) để làm điều đó:
class SomeClass < ActiveRecord::Base
after_find :do_something
def do_something
# code
end
end
Nếu bạn cần các đối tượng được tìm thấy trong phương pháp của bạn:
class SomeClass < ActiveRecord::Base
after_find{ |o| do_something(o) }
def do_something(o)
# ...
end
end
Thêm chi tiết tại đây: http://guides.rubyonrails.org/active_record_callbacks.html#after-initialize-and-after-find
Cảm ơn bạn. –