diff --git a/app/models/project.rb b/app/models/project.rb
index e636c33..cdb460e 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -253,7 +253,7 @@ class Project < ActiveRecord::Base
def to_param
# id is used for projects with a numeric identifier (compatibility)
- @to_param ||= (identifier.to_s =~ %r{^\d*$} ? id : identifier)
+ @to_param ||= (identifier.to_s =~ %r{^\d*$} ? id.to_s : identifier)
end
def active?
diff --git a/test/unit/helpers/application_helper_test.rb b/test/unit/helpers/application_helper_test.rb
index c5d644c..b261fd3 100644
--- a/test/unit/helpers/application_helper_test.rb
+++ b/test/unit/helpers/application_helper_test.rb
@@ -925,6 +925,14 @@ RAW
link_to_project(project, {:action => 'settings'}, :class => "project")
end
+ def test_link_to_legacy_project_with_numerical_identifier_should_use_id
+ # numeric identifier are no longer allowed
+ Project.update_all "identifier=25", "id=1"
+
+ assert_equal 'eCookbook',
+ link_to_project(Project.find(1))
+ end
+
def test_principals_options_for_select_with_users
users = [User.find(2), User.find(4)]
assert_equal %(),