1
我正在使用rails 3.2。我希望能夠獲取將在控制器中執行的操作呈現的視圖的文件名。我想獲取文件的最後修改日期,但我不確定如何動態獲取視圖的文件名。獲取與控制器中的操作相關聯的視圖的文件名
我正在使用rails 3.2。我希望能夠獲取將在控制器中執行的操作呈現的視圖的文件名。我想獲取文件的最後修改日期,但我不確定如何動態獲取視圖的文件名。獲取與控制器中的操作相關聯的視圖的文件名
全路徑名
視野範圍內的環境:
<%= @view_renderer.lookup_context.find_template(@virtual_path).identifier %>
在Rails 3的當前模板
在控制器操作:
# example
def index
@template_path = lookup_context.find_template("#{controller_path}/#{action_name}").identifier
end
在控制器動作中很難做到這一點,我甚至不確定這是可能的,因爲控制器操作不知道將渲染哪個視圖(如果有的話),因爲重定向是可能的。但鑑於你知道視圖的文件擴展名,並假設它的命名一樣的動作,你可以這樣做:
Rails.root.join("app", "assets", "views", controller_name, action_name + ".html.erb").to_s
在視圖裏,你可以這樣做:
<%= __FILE__ %>
非常酷豆。謝謝。效果很好。 – gangelo