在我的Rails应用程序中,我有几个控制器为我的客户设计了一个站点。最终用户和管理员实际上使用了所有控制器。
我创建了一个包含导航链接的局部文件。我的问题是我不希望它们出现在admin部分中。造成这种棘手的部分是,导航应该针对诸如之类的东西出现pages/home
,/galleries
或者/galleries/5
它们不应针对诸如/pages/new
或之类的东西出现/galleries/5/edit
。
到目前为止,我一直在向中添加逻辑application.html.erb
,但是事情开始变得一发不可收拾,如果我的if语句中有太多规则,我会对此感到不舒服。这是一个例子:
来自application.html.erb的代码段
<% unless current_page?('/') or current_page?('/admin') or current_page?({action: :new}) %>
<%= render "layouts/top_links" %>
<% end %>
这是我到目前为止所写的全部内容,但是如果我继续这样下去,几乎可以肯定会花更长的时间。所以这是我的问题:
current_page?
摆出这一点的最好方法吗?您可以将此类肮脏的逻辑放入帮助程序中以使其变得更干净
# layouts/application.html.erb
nav_links
# application_helper
def nav_links
return "" if action_name.in?['new', 'edit'] || controller_path == 'admin'
render partial: 'layouts/nav'
end
完毕。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句