Tôi đang ở Rails 2.3.5 và tôi có vấn đề này:Tại sao Rails before_filter được gọi hai lần khi bộ điều khiển được phân lớp?
class BaseController < ApplicationController
before_filter :foo, :only => [:index]
end
class ChildController < BaseController
before_filter :foo, :only => [:index, :show, :other, :actions]
end
Vấn đề là trên ChildController thì: foo trước khi lọc được gọi hai lần.
Tôi đã thử một số cách giải quyết xung quanh vấn đề này. Nếu tôi không bao gồm hành động :index
ở trẻ em, nó sẽ không bao giờ được gọi cho hành động đó.
Giải pháp tôi thấy công trình, nhưng tôi nghĩ rằng nó rất rất xấu xí
skip_before_filter :foo
before_filter :foo, :only => [:index, :show, :other, :actions]
Có cách nào tốt hơn để giải quyết vấn đề này?