是否存在包含可从部分内部访问的部分名称的变量?
render partial: 'foo'
在
_foo.haml
:
.name
= partial_name # would output "foo"
__FILE__
会给你文件名
<% __FILE__.split("/").last.sub(/^_/, "") %>
在你的部分:
<%= partial_class(__FILE__) %>
在 application_helper 中:
def partial_class(partial)
partial.split(".").first.split("/").last.sub(/^_/, "")
end
结果:部分为“_customer-existing.html.erb”,输出为“customer-existing”。我经常使用这个作为部分内部包装 div 上的类名,这样我就可以在 jquery 中使用相同的名称来显示/隐藏部分。
示例:
<div class='<%= partial_class(__FILE__) %>'>
stuff here that will be show/hideable by partial name.
</div>
您可以使用 application_helper 中的助手来实现此目的,并使用 ruby 的自省功能 所以你不必显式传递 FILE 就像迈克的回答一样。
def foo
caller_locations(1, 1).first.path
end