Ruby on Rails(三)隐藏部分视图
我正在开发 Ruby on Rails 3 Web 应用程序。
我有一个名为 User
的表,其中包含一个名为 role
的对象。我正在寻找对视图的这些部分具有“错误”角色的用户隐藏视图部分的最佳方法。
例如,我希望所有用户都能够看到用户 index
页面,但我希望只有具有角色 - admin
的用户能够编辑其他用户。
因此,首先我使用 filter_by
阻止 edit
操作,但我还想要的是让 edit
按钮不出现。
当前用户保存在会话中,因此检查用户角色非常简单。
我要问的是,除了我想隐藏的每个按钮之前明显的 if
语句之外,是否有一种简单的方法可以做到这一点。我认为 Rails 有一种简单的方法可以完成此类事情,但我找不到。
I am working on a Ruby on Rails 3 web application.
I have a table named User
with a coulmn named role
. I am looking for the best way to hide parts of the view from users that have the "wrong" role for those parts of the view.
For example I want all users to be able to see the users index
page, but i want only users with a role - admin
to be able to edit other users.
So first I block the edit
action using filter_by
, but what I also want is make the edit
button not to appear.
The current user is saved in the session, so checking the user role is very simple.
What I am asking, is there an easy way to do so besides the obvious if
statement before each button I want to hide. I would think that rails would have an easy way to do this type of thing, I couldn't find one.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可能想要使用 Devise 和 CanCan。
https://github.com/plataformatec/devise
https://github.com/ryanb/cancan
这是 RailCast 教程
You may want to use Devise and CanCan.
https://github.com/plataformatec/devise
https://github.com/ryanb/cancan
Here is a RailCast tutorial
如果你想清理它一点点,你可以自己编写一个应用程序助手:
然后在你看来你可以写:
if you wanted to clean it up a tiny bit you could write yourself an application helper:
then in your view you could write: