我为我的模型使用了 heimdallr,并在视图中使用了一种destroyable?
方法,但我仅将 destoy 范围用于所有者或管理员,并且当用户未登录destroyable?
方法时会引发运行时错误The :delete scope does not exist
如何解决这个问题?
我为我的模型使用了 heimdallr,并在视图中使用了一种destroyable?
方法,但我仅将 destoy 范围用于所有者或管理员,并且当用户未登录destroyable?
方法时会引发运行时错误The :delete scope does not exist
如何解决这个问题?
您是否尝试过在模型上创建: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))