Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
CanCanCan Issue
begin
require 'bundler/inline'
rescue LoadError => e
$stderr.puts 'Bundler version 1.10 or later is required. Please update your Bundler'
raise e
end
gemfile(true) do
source 'https://rubygems.org'
gem 'rails', '5.1.0' # use correct rails version
gem 'cancancan' # use correct cancancan version
gem 'sqlite3' # use another DB if necessary
end
require 'active_record'
require 'cancancan'
require 'cancan/model_adapters/active_record_adapter'
require 'cancan/model_adapters/active_record_4_adapter'
require 'minitest/autorun'
require 'logger'
# This connection will do for database-independent bug reports.
ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:')
ActiveRecord::Base.logger = Logger.new(STDOUT)
# create your tables here
ActiveRecord::Schema.define do
create_table :books, force: true do |t|
t.integer :user_id
end
create_table :users, force: true do |t|
t.string :name
end
end
class Book < ActiveRecord::Base
belongs_to :user
end
class User < ActiveRecord::Base
has_many :books
end
class Ability
include CanCan::Ability
def initialize(user)
can :read, Book, user: user
end
end
class BugTest < Minitest::Test
def test_bug
user1 = User.create!
user2 = User.create!
books = Book.create([{user: user1},{user: user2}])
ability = Ability.new(user1)
books = Book.accessible_by(ability, :read).count
assert_equal 1, books
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.