2

レール3.2を使用しています。コントローラで実行されているアクションによってレンダリングされるビューのファイル名を取得できるようにしたい。ファイルの最終変更日を取得したいのですが、ビューのファイル名を動的に取得する方法がわかりません。

4

2 に答える 2

3

Rails 3の現在のテンプレートのフルパス名:

ビュー環境内:

<%= @view_renderer.lookup_context.find_template(@virtual_path).identifier %>

コントローラアクション内:

# example

def index
  @template_path = lookup_context.find_template("#{controller_path}/#{action_name}").identifier
end
于 2013-01-15T11:03:20.273 に答える
1

これはコントローラーアクション内で行うのは困難であり、リダイレクトが可能であるため、コントローラーアクションはレンダリングされるビューがある場合はそれを認識しないため、それが可能かどうかさえわかりません。ただし、ビューのファイル拡張子がわかっていて、アクションと同じ名前であると仮定すると、次のように実行できます。

Rails.root.join("app", "assets", "views", controller_name, action_name + ".html.erb").to_s

ビュー内で、次のことができます。

<%= __FILE__ %>
于 2013-01-15T02:28:29.620 に答える