Rails 5显示基于路由的内容

时间:2016-08-02 20:34:13

标签: ruby-on-rails ruby-on-rails-5

我有一个Rails 5应用程序,它将根据当前路由在标题中包含动态内容。我意识到我可以获得路线并将其与if(current_page?('/home'))之类的东西进行比较,但这真的是最好的方法吗?

3 个答案:

答案 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]参数,尽管您的解决方案也不错