From: Jean-Philippe Lang Date: Tue, 1 Apr 2008 17:48:11 +0000 (+0000) Subject: Prevent NoMethodError on nil class if custom_fields params is not present in IssuesCo... X-Git-Tag: 0.8.0-RC1~616 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=e4da9d6f10edda72211b63659ab938a5ad7f0cda;p=redmine.git Prevent NoMethodError on nil class if custom_fields params is not present in IssuesController#new (#969). git-svn-id: http://redmine.rubyforge.org/svn/trunk@1317 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 7d4212095..269e988d9 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -140,7 +140,9 @@ class IssuesController < ApplicationController requested_status = IssueStatus.find_by_id(params[:issue][:status_id]) # Check that the user is allowed to apply the requested status @issue.status = (@allowed_statuses.include? requested_status) ? requested_status : default_status - @custom_values = @project.custom_fields_for_issues(@issue.tracker).collect { |x| CustomValue.new(:custom_field => x, :customized => @issue, :value => params["custom_fields"][x.id.to_s]) } + @custom_values = @project.custom_fields_for_issues(@issue.tracker).collect { |x| CustomValue.new(:custom_field => x, + :customized => @issue, + :value => (params[:custom_fields] ? params[:custom_fields][x.id.to_s] : nil)) } @issue.custom_values = @custom_values if @issue.save attach_files(@issue, params[:attachments]) diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb index 7d49f088d..89769ffe2 100644 --- a/test/functional/issues_controller_test.rb +++ b/test/functional/issues_controller_test.rb @@ -181,6 +181,16 @@ class IssuesControllerTest < Test::Unit::TestCase assert_equal 'Value for field 2', v.value end + def test_post_new_without_custom_fields_param + @request.session[:user_id] = 2 + post :new, :project_id => 1, + :issue => {:tracker_id => 1, + :subject => 'This is the test_new issue', + :description => 'This is the description', + :priority_id => 5} + assert_redirected_to 'issues/show' + end + def test_copy_issue @request.session[:user_id] = 2 get :new, :project_id => 1, :copy_from => 1