我有一个Rails 5应用程序,它将根据当前路由在标题中包含动态内容。我意识到我可以获得路线并将其与if(current_page?('/home'))
之类的东西进行比较,但这真的是最好的方法吗?
答案 0 :(得分:1)
我认为使用params[:controller]
,params[:action]
或current_page?会更好
答案 1 :(得分:1)
您可以使用带有current_page的命名路由?:
if(current_page?(posts_path))
和
if(current_page?(post_path(1))
此外,您还可以使用request
检查当前路径
如果你在root path
request.url
#=> "http://localhost:3000"
request.path
#=> "/"
答案 2 :(得分:1)
考虑在控制器的操作中初始化您的动态内容。这是这类事情的常见解决方案。
HTML:
<title><%= @title %></title>
控制器:
def index
...
@title = 'Hello world'
...
end
此外,您可以使用content_for
辅助方法在Rails视图中初始化动态内容。有关此Rails: How to change the title of a page?
如果您确定必须根据当前路线将此内容设置在其他位置,我建议您使用params[:controller]
和params[:action]
参数,尽管您的解决方案也不错