Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

We’re showing branches in this repository, but you can also compare across forks.

base fork: ryanb/cancan
base: 1.6.6
...
head fork: nickhoffman/cancan
compare: 1.6.7
  • 2 commits
  • 6 files changed
  • 3 commit comments
  • 1 contributor
5 CHANGELOG.rdoc
View
@@ -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
4 cancan.gemspec
View
@@ -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'
2  lib/cancan/controller_resource.rb
View
@@ -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
4 spec/cancan/controller_resource_spec.rb
View
@@ -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
4 spec/cancan/model_adapters/active_record_adapter_spec.rb
View
@@ -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
4 spec/spec_helper.rb
View
@@ -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?

Harm de Wit

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

Anuj Dutta
Collaborator

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.