Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Comparing changes

Choose two branches to see what's changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: matiss/cancan
base: 1.6.6
...
head fork: ryanb/cancan
compare: 1.6.7
Checking mergeability… Don't worry, you can still create the pull request.
  • 2 commits
  • 6 files changed
  • 3 commit comments
  • 1 contributor
View
5 CHANGELOG.rdoc
@@ -1,3 +1,8 @@
+1.6.7 (October 4, 2011)
+
+* fixing nested resource problem caused by namespace addition - issue #482
+
+
1.6.6 (September 28, 2011)
* correct "return cant jump across threads" error when using check_authorization (thanks codeprimate) - issues #463, #469
View
4 cancan.gemspec
@@ -1,6 +1,6 @@
Gem::Specification.new do |s|
s.name = "cancan"
- s.version = "1.6.6"
+ s.version = "1.6.7"
s.author = "Ryan Bates"
s.email = "ryan@railscasts.com"
s.homepage = "http://github.com/ryanb/cancan"
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
s.files = Dir["{lib,spec}/**/*", "[A-Z]*", "init.rb"] - ["Gemfile.lock"]
s.require_path = "lib"
- s.add_development_dependency 'rspec', '~> 2.1.0'
+ s.add_development_dependency 'rspec', '~> 2.6.0'
s.add_development_dependency 'rails', '~> 3.0.9'
s.add_development_dependency 'rr', '~> 0.10.11' # 1.0.0 has respond_to? issues: http://github.com/btakita/rr/issues/issue/43
s.add_development_dependency 'supermodel', '~> 0.1.4'
View
2  lib/cancan/controller_resource.rb
@@ -208,7 +208,7 @@ def name
end
def namespaced_name
- @params[:controller].sub("Controller", "").singularize.camelize.constantize
+ @name || @params[:controller].sub("Controller", "").singularize.camelize.constantize
rescue NameError
name
end
View
4 spec/cancan/controller_resource_spec.rb
@@ -197,8 +197,8 @@ class Project < ::Project; end
it "should load parent resource through proper id parameter" do
project = Project.create!
- @params.merge!(:action => "index", :project_id => project.id)
- resource = CanCan::ControllerResource.new(@controller, :project, :parent => true)
+ @params.merge!(:controller => "categories", :action => "index", :project_id => project.id)
+ resource = CanCan::ControllerResource.new(@controller, :project)
resource.load_resource
@controller.instance_variable_get(:@project).should == project
end
View
4 spec/cancan/model_adapters/active_record_adapter_spec.rb
@@ -1,10 +1,6 @@
if ENV["MODEL_ADAPTER"].nil? || ENV["MODEL_ADAPTER"] == "active_record"
require "spec_helper"
- RSpec.configure do |config|
- config.extend WithModel
- end
-
ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
describe CanCan::ModelAdapters::ActiveRecordAdapter do
View
4 spec/spec_helper.rb
@@ -9,11 +9,15 @@
require 'cancan/matchers'
RSpec.configure do |config|
+ config.treat_symbols_as_metadata_keys_with_true_values = true
+ config.filter_run :focus => true
+ config.run_all_when_everything_filtered = true
config.mock_with :rr
config.before(:each) do
Project.delete_all
Category.delete_all
end
+ config.extend WithModel
end
class Ability

Showing you all comments on commits in this comparison.

@jibiel

Could you please merge this fix to the 2.0 branch?

@harmdewit

Yes please merge this fix, it solves a nested resource problem on 2.0.

Without this fix nested resources don't work correctly. My controller code:

  load_and_authorize_resource :user
  load_and_authorize_resource :strategy, through: :user

Gave me the error undefined method "strategies" for #<Strategy:0x007fcddef74528>. It is because of the namespaced_name method in controller_resource.rb on line 211

@andhapp

This causes failures for data_mapper and mongoid since with_model is only part of active_record specs.

Something went wrong with that request. Please try again.