我有一个非常标准的Rails 4应用程序,此时带有许多静态页面(home,about,contact等)以及数据库支持的页面。我想在整个网站的大部分地方都包含html部分,但不包括静态页面(除了主页)。我能得到这个工作,如果我只是陈述一个页面排除,例如关于页面,使用:如果在多个页面中的一个页面上包含html片段(Rails)
<% if !current_page?(about_url) %>
include the partial
<% end %>
我不知道该怎么写有一个网址列表,即about_url,CONTACT_URL等我尝试了一些沿线:
<% if [about_url, contact_url, ...].!include? current_page
但也许并不奇怪,它没有工作。
有没有办法在erb自身内部实现这一点,而无需返回控制器? (我想我必须为每个控制器创建阵列)
感谢您的任何帮助。
- 更新 -
我只是想(下面的评论如下):
<% if not [about_url, contact_url].include? request.original_url %>
<%= render partial %>
<% end %>
它似乎并不喜欢这样。我不确定我的语法是否关闭,或者不能这样做。
尝试request.full_path和/或request.path而不是request.original_url –
request_path做了诡计!但我还需要在我的数组中使用about_path,contact_path而不是about_url等。我将发布完整的解决方案作为答案。感谢您的帮助 – GerryDevine
乐意帮忙:) –