0

我只希望创建对象(例如注册表)的人看到一些东西=,但努力用 Devise 定义一切

这是代码:

<% if user_signed_in? && ***"current_user = registry the user created?"?(struggling with the second part)*** %>

提前致谢

PS我正在使用cancan,但这对我想要显示页面的显示页面没有帮助。

4

1 回答 1

1

这不是设计的一部分,而是康康舞的一部分。

您需要在您的 cancan 能力文件中定义能力:

user ||= User.new
can :read, Registry, :user_id => user.id

这样,cancan 的授权方法将允许您执行以下操作:

@registry = Registry.find(params[:id])
authorize! :read, @registry

明明授权!如果用户无权访问此资源,将引发错误。

如果您只是想在您使用的注册表视图中检查这一点:

<% if can? :read, @registry %>
  do your thing here
<% end %>

顺便说一句,所有这些都记录在 cancan 首页上:https ://github.com/ryanb/cancan

于 2012-06-25T13:54:54.717 回答