【发布时间】:2011-09-18 23:06:15
【问题描述】:
我有以下几点:
User has_many Listings
Listing has_many Offers
非常基本。用户可以发布列表,其他用户可以对这些列表进行报价。
在每个列表视图中,您都可以看到列表的描述,以及它收到的所有报价的列表。此外,在同一视图中,还有一个表单可以让用户在此列表中提出要约。
当然,如果我正在查看自己的列表,我不希望能够提出要约。因此,我正在尝试对 Offer 的 create 方法添加一个限制,以仅允许来自与发布此清单的用户不同的用户访问它。在我的能力类中,它会是这样的:
can :create, Offer if listing.user != user
这不起作用,因为listing 没有在任何地方定义。当用户正在查看某个listing 时会调用该方法,那么,如何将当前的Listing 传递给cancan 方法以有效检查此限制?
谢谢。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 cancan