开发者

Template path in Rails 3

Let's say, I connected the route / to WelcomeController's i开发者_高级运维ndex action.

Inside of the index.html.erb-Template I want to display the path of the template from Rails.root upwards, ie.

<h1> We are rendering: <%= how_do_i_do_this? %></h1>

to render to

<h1> We are rendering: app/views/presentation/index.html.erb</h1>  

In Rails 2 I could access template.path, but this doesn't work anymore

Any ideas?


Because of how template rendering works in Rails, you will now be able to use __FILE__ for this instead. This works for me:

<%= __FILE__.gsub(Rails.root.to_s, "") %>

There may be a better way to do this however, but I couldn't find it when I went looking.


Ryan's answer works. If you also want to put your method in a helper, use Kernel#caller. Here is a method I'm using to do something similar:

def has_page_comment? code = nil
  if code.nil?
    # grab caller file, sanitize
    code = caller.first.split(':').first.gsub(Rails.root.to_s,'').gsub('.html.erb','')
  end
  ...
end
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜