0

我为我的模型使用了 heimdallr,并在视图中使用了一种destroyable?方法,但我仅将 destoy 范围用于所有者或管理员,并且当用户未登录destroyable?方法时会引发运行时错误The :delete scope does not exist

如何解决这个问题?

4

1 回答 1

0

您是否尝试过在模型上创建:delete范围或方法并将其设置为不返回记录的内容?

看起来这段代码是失败的地方:

https://github.com/roundlake/heimdallr/blob/master/lib/heimdallr/proxy/record.rb

def destroyable?
  scope = @restrictions.request_scope(:delete)
  record_in_scope? scope
end

因此,如果您的范围没有返回任何记录,那么理论上它应该可以正常工作。

scope :delete, where(YourModel.arel_table[:id].lt(0))
于 2012-09-22T20:37:03.997 回答