首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建新对象时的扫描能力

创建新对象时的扫描能力
EN

Stack Overflow用户
提问于 2011-09-19 07:06:15
回答 1查看 382关注 0票数 1

我有以下几点:

代码语言:javascript
复制
User has_many Listings
Listing has_many Offers

非常基础。用户可以发布列表,而其他用户可以对这些列表进行报价。

在每个列表视图中,您可以看到列表的描述,以及它收到的所有优惠的列表。此外,在这个相同的视图中,有一个表单允许用户在此列表上提供报价。

当然,如果我看的是我自己的列表,我不希望能够提出报价。因此,我尝试在Offer的create方法上添加一个限制,仅当它来自与发布此清单的用户不同的用户时才允许访问。在我的能力类中,应该是这样的:

代码语言:javascript
复制
can :create, Offer if listing.user != user

这不起作用,因为没有在任何地方定义listing。当用户查看某个listing时会调用此方法,那么,如何将当前的列表传递给cancan方法以有效地检查此限制?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-19 10:08:56

移动CanCan能力检查,直到您创建新提议的时间点之后。例如。

代码语言:javascript
复制
#listing.rb
load_and_authorize_resource :except => :create

def create
    @offer = #whatever it is you want to do
    authorize! :create, @offer

end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7465072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档