小编Tro*_*roy的帖子

你怎么写cancan能力呢?和accessible_by两者都在自我引用HABTM关系?

我很难理解如何使用自引用HABTM关系,cancan和ActiveRecord来处理这种情况.

我正在尝试使用accessible_by来确定一组视频,这些视频在视频和频道之间存在关系的情况下是可见的,但是生成的SQL对于部分查询具有错误的表名.以下是关系:

# video.rb
class Video < ActiveRecord::Base
  belongs_to :channel
end

# channel.rb
class Channel < ActiveRecord::Base
  has_many :videos
  has_and_belongs_to_many :subchannels, :class_name => "Channel", :join_table => "channels_channels", :foreign_key => :parent_id, :association_foreign_key => :subchannel_id
  has_and_belongs_to_many :parent_channels, :class_name => "Channel", :join_table => "channels_channels", :foreign_key => :subchannel_id, :association_foreign_key => :parent_id
end

# The appropriate channels_channels table exists with subchannel_id and parent_id fields.
Run Code Online (Sandbox Code Playgroud)

我需要一个cancan能力来查找默认频道的公共子频道中的所有公共视频.我尝试了以下方法:

# ability.rb
can :read, Video, :permission => 'public', :channel => {:permission => 'public', :parent_channels => {:name …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails cancan

5
推荐指数
1
解决办法
797
查看次数

标签 统计

cancan ×1

ruby-on-rails ×1