Tôi đang nâng cấp plugin Rails của mình làm công cụ hoạt động với bản phát hành 3.0RC1 mới nhất và tôi đang gặp khó khăn trong việc tìm ra cách tốt nhất (và chính xác nhất) để mở rộng ActionController
. Tôi đã thấy this post bởi DHH và this question ở đây trên SO, nhưng câu hỏi của tôi là nhiều hơn về cách gọi đúng mã trong số ActionController
.Rails 3.0 Engine - Thực hiện mã trong ActionController
Ví dụ, tôi cần phải gọi sau đây trong điều khiển động cơ của tôi:
class ApplicationController < ActionController::Base
helper :all
before_filter :require_one_user
after_filter :store_location
private
def require_one_user
# Code goes here
end
def store_location
# Code goes here
end
end
Tôi biết làm thế nào để đúng cách bao gồm hai chức năng riêng tư của tôi, nhưng tôi không thể tìm thấy một cách để có được nó để gọi đúng helper
, before_filter
và after_filter
.
Tôi sẽ đánh giá cao một số liên kết hoặc cách để thực hiện công việc này. Tôi đã thử đặt tên cho bộ điều khiển của mình là một cái gì đó khác ngoài số ApplicationController
và có số thực ApplicationController
mở rộng nó, nhưng điều đó dường như không hoạt động. Tôi thực sự thích giải pháp nào giúp cuộc sống của người sử dụng động cơ trở nên dễ dàng nhất có thể. Lý tưởng nhất, họ sẽ không phải mở rộng lớp học của tôi, nhưng họ sẽ có tất cả các chức năng được xây dựng vào riêng của họ ApplicationController
.
+1 và được chấp nhận - Cảm ơn bạn! Tôi đánh giá cao việc bạn dành thời gian mặc dù tôi đã "tự mình trả lời". Nó là tốt đẹp để xem một giải pháp thanh lịch hơn. Oh, và chào mừng bạn đến Stack Overflow :-) –