Ruby on rails 嵌套路由的«if语句»

Ruby on rails 嵌套路由的«if语句»,ruby-on-rails,if-statement,routes,Ruby On Rails,If Statement,Routes,我在routes.rb中嵌套了路由 在顶部菜单中,当用户位于公司控制器或嵌套控制器、员工、帐户中时,我希望显示某个链接。所以,我想要一个简单的“if语句” 我试过几种方法 <%= if params[:company_id].present? %> # doesn't work in company views # certain link <% end %> <%= if current_page?(controller: 'companies') %>

我在routes.rb中嵌套了路由

在顶部菜单中,当用户位于公司控制器或嵌套控制器、员工、帐户中时,我希望显示某个链接。所以,我想要一个简单的“if语句”

我试过几种方法

<%= if params[:company_id].present? %> # doesn't work in company views
  # certain link
<% end %>

<%= if current_page?(controller: 'companies') %> # doesn't work in nested controllers' views
  # certain link
<% end %>
当然,两者都可以与or一起使用,但我认为这是一种更好的方法


谢谢

您可以使用控制器名称:

<% if controller_name.match(/^companies/) %>
    # certain link
<% end %>
更新 或者,使用控制器路径:

<% if controller_path.match(/^companies/i) %> 
    # certain link
<% end %>

不。在嵌套视图中不起作用。例如:domain.com/companys/1/accounts/3@PeterTretyakov,你能用我的第二种方法检查一下吗?如果对你有效,我会删除第一个。
<% if controller_path.match(/^companies/i) %> 
    # certain link
<% end %>