【发布时间】:2011-04-01 23:44:52
【问题描述】:
我正在使用一个 gem,它向我的 Rails 应用程序添加了一个引擎,其路由都使用默认应用程序布局呈现 html 的 sn-ps。我希望这个 gem 中的控制器使用不同的布局。有没有一种方法可以将代码添加到初始化程序中,这将动态地导致 gem 中的控制器始终使用布局。例如。假设我正在使用的 gem 中定义了 SampleController 的完整定义,我可以在初始化程序中抛出类似以下代码(不起作用)吗?
class SampleController
layout 'my_layout'
end
我知道您可以调用class_eval 或instance_eval 来获取类和实例方法,但是如何覆盖这种类型的初始化代码?
【问题讨论】:
-
您不需要为此做任何类或实例评估工作。您的引擎应该自动将您的引擎布局目录推送到视图路径堆栈上。只需确保您的引擎配置正确指定了目录(请注意,如果您单独指定一个路径,则需要全部指定)。
标签: ruby-on-rails ruby