Skip to content
Snippets Groups Projects
Commit 2db73e60 authored by Ryan Bates's avatar Ryan Bates
Browse files

Merge pull request #670 from andhapp/fix-issue-664

Namespaced Controllers not building new resource from params(regression 1.6.8)
parents cad4db2d 60bc9e98
No related branches found
No related tags found
No related merge requests found
......@@ -213,10 +213,15 @@ module CanCan
def resource_params
if @options[:class]
@params[@options[:class].to_s.underscore.gsub('/', '_')]
else
@params[namespaced_name.to_s.underscore.gsub("/", "_")]
params_key = extract_key(@options[:class])
return @params[params_key] if @params[params_key]
end
resource_params_by_namespaced_name
end
def resource_params_by_namespaced_name
@params[extract_key(namespaced_name)]
end
def namespace
......@@ -244,5 +249,11 @@ module CanCan
def new_actions
[:new, :create] + [@options[:new]].flatten
end
private
def extract_key(value)
value.to_s.underscore.gsub('/', '_')
end
end
end
......@@ -75,13 +75,19 @@ describe CanCan::ControllerResource do
end
it "should build a new resource for namespaced model with hash if params[:id] is not specified" do
project = Sub::Project.create!
@params.merge!(:action => "create", 'sub_project' => {:name => "foobar"})
resource = CanCan::ControllerResource.new(@controller, :class => ::Sub::Project)
resource.load_resource
@controller.instance_variable_get(:@project).name.should == "foobar"
end
it "should build a new resource for namespaced controller and namespaced model with hash if params[:id] is not specified" do
@params.merge!(:controller => "Admin::SubProjectsController", :action => "create", 'sub_project' => {:name => "foobar"})
resource = CanCan::ControllerResource.new(@controller, :class => Project)
resource.load_resource
@controller.instance_variable_get(:@sub_project).name.should == "foobar"
end
it "should build a new resource with attributes from current ability" do
@params.merge!(:action => "new")
@ability.can(:create, Project, :name => "from conditions")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment