我正在使用rails 3.2。我希望能够获取将由控制器中执行的操作呈现的视图的文件名。我想获取文件的最后修改日期,但我不确定如何动态获取视图的文件名。
答案 0 :(得分:3)
Rails 3中当前模板的完整路径名:
在View环境中:
<%= @view_renderer.lookup_context.find_template(@virtual_path).identifier %>
在控制器操作中:
# example
def index
@template_path = lookup_context.find_template("#{controller_path}/#{action_name}").identifier
end
答案 1 :(得分:1)
这在控制器操作中很难做到,我甚至不确定它是否可行,因为控制器操作不知道将呈现哪个视图(如果有的话),因为可以进行重定向。但是,如果您知道视图的文件扩展名并假设它的名称与操作相同,则可以执行以下操作:
Rails.root.join("app", "assets", "views", controller_name, action_name + ".html.erb").to_s
在视图中,您可以执行以下操作:
<%= __FILE__ %>