From cf9154f924ff73f4220b9958b245eb59161af17d Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sat, 25 Feb 2012 12:57:30 +0000 Subject: [PATCH] Can not use Project#find on scopes with Rails 3.1. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9001 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/controllers/sys_controller.rb | 12 ++++++++++-- test/functional/sys_controller_test.rb | 8 +++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/app/controllers/sys_controller.rb b/app/controllers/sys_controller.rb index ed29c34d4..cad3e4ab3 100644 --- a/app/controllers/sys_controller.rb +++ b/app/controllers/sys_controller.rb @@ -48,10 +48,18 @@ class SysController < ActionController::Base def fetch_changesets projects = [] + scope = Project.active.has_module(:repository) if params[:id] - projects << Project.active.has_module(:repository).find(params[:id]) + project = nil + if params[:id].to_s =~ /^\d*$/ + project = scope.find(params[:id]) + else + project = scope.find_by_identifier(params[:id]) + end + raise ActiveRecord::RecordNotFound unless project + projects << project else - projects = Project.active.has_module(:repository).all + projects = scope.all end projects.each do |project| project.repositories.each do |repository| diff --git a/test/functional/sys_controller_test.rb b/test/functional/sys_controller_test.rb index 97368b200..558a6d936 100644 --- a/test/functional/sys_controller_test.rb +++ b/test/functional/sys_controller_test.rb @@ -89,12 +89,18 @@ class SysControllerTest < ActionController::TestCase assert_response :success end - def test_fetch_changesets_one_project + def test_fetch_changesets_one_project_by_identifier Repository::Subversion.any_instance.expects(:fetch_changesets).once.returns(true) get :fetch_changesets, :id => 'ecookbook' assert_response :success end + def test_fetch_changesets_one_project_by_id + Repository::Subversion.any_instance.expects(:fetch_changesets).once.returns(true) + get :fetch_changesets, :id => '1' + assert_response :success + end + def test_fetch_changesets_unknown_project get :fetch_changesets, :id => 'unknown' assert_response 404 -- 2.39.5