根据角色使用 CanCan 隐藏或显示内容?
当用户不是某个角色时,我需要隐藏表单中的一些表单字段。怎么可能呢?从文档中我知道您可以授予对某些操作的访问权限,例如显示、更新或只是管理
但是如何执行诸如 if user.role 之类的操作? :行政
I need to hide some form fields in a form when a user is not a certain role. How could that be done? From the docs I know you can give access to certain actions like show, update or just manage
But how to do something like if user.role? :admin
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果你想通过康康舞来做到这一点,这完全取决于你如何设置你的能力。考虑到这一点,如果用户拥有完全权限,您可以使用:
否则您可以更具体,并指定用户需要具有权限的基本模型/操作,如下所示:
If you'd like to do it through cancan it will all depend on how you have your abilities setup. With that in mind, if the user has full privileges you can just use:
Otherwise you can be more specific and specify a base model/action that a user needs to have privileges to like so:
这个答案主要是从 CanCan 文档复制的。
首先,定义一个能力类别。您可以使用以下方法生成其中之一:
这应该给您类似的内容:
在此类中,您可以定义您希望用户拥有的任何能力。在上面的示例中,管理员可以管理任何对象。非管理员或未登录的用户可以读取任何对象。
定义您的能力后,您需要使用 检查您的能力 code>can? 方法。在你看来,你可以这样写:
This answer is mostly copied from the CanCan documentation.
First, you define an Ability class. You can generate one of these using:
This should give you something like:
In this class you can define whatever abilities you want the user to have. In the above example, an admin can manage any object. A user who is not an admin or who is not logged in can read any object.
After you've defined your abilities, you need to check your abilities using the
can?
method. In your view you could write something like:您可以使用:
You can use: