如何处理前端内容以便根据当前用户显示菜单项?

时间:2012-08-07 04:05:00

标签: ruby-on-rails ruby ruby-on-rails-3 menu

我正在使用Ruby on Rails 3.2.2并且我想“处理”/“生成”正确的前端内容,以便遵循管理菜单项的“常见”方式,主要基于当前用户的“平等” ”。也就是说,我想基于

显示不同的菜单项
  • 当前浏览的页面;
  • 正在访问该页面的当前用户(该页面可能与不是当前用户的用户相关)。

其中(例如,在控制器,视图或模型文件中)和如何(例如,在控制器,视图或模型文件中声明与当前用户相关的检查我应该“陈述”/“放”那些“条件陈述”?


此时认为(主要是与当前浏览页面相关的问题)我可以使用helper methods直接在控制器中处理此事...

1 个答案:

答案 0 :(得分:0)

我倾向于将此信息放入View文件中,其中包含编码到View文件中的简单或静态案例以及更复杂的案例,这些案例不仅需要一行编码到帮助程序中。

但是为了不使视图文件膨胀,我建议使用partials来从视图文件中卸载代码块。

我使用视图的原因之一是我会进行某些基于用户的格式设置,例如如果我列出所有订单,那么普通用户将看到显示的某些列,而如果管理员登录,他将看到几个额外的列。这通常用类似

的方式完成
<%if @curreny_user_type == 'admin'%><td> ...... </td><%end%>

因此,在我现在开始将一些基于用户的逻辑拆分为控制器而将其他逻辑拆分为视图之前,我宁愿将它们总是放在同一个地方。