imr*_*ran 5 global ruby-on-rails before-filter view-helpers
我正在制作一个电子商务应用程序,其中的类别在所有页面的侧栏中都可见.我在应用程序控制器中写了一个方法
def categories
@categories = Category.all
end
Run Code Online (Sandbox Code Playgroud)
但是我怎么能默认这个方法可用于所有控制器和动作,这样我就不必在每个动作中专门调用这个方法
def list
categories
@products = Product.order('title').page(params[:page]).per(4)
end
Run Code Online (Sandbox Code Playgroud)
Sye*_*lam 10
您可以定义您的方法,application_controller.rb并且由于每个其他控制器都继承自此方法,因此该方法可供所有控制器使用.此外,为了使它成为一个帮助方法,它可以在视图中使用,你可以说helper_method :my_method在application_controller.rb.
现在,为了在控制器中的任何其他操作之前自动评估它,您可以使用before_filter.before_filter :my_method
在控制器中添加您希望在任何操作之前或在application_controller.rb中评估此方法