Index: test/functional/account_controller_test.rb =================================================================== --- test/functional/account_controller_test.rb (revision 2835) +++ test/functional/account_controller_test.rb (working copy) @@ -37,7 +37,19 @@ assert_template 'show' assert_not_nil assigns(:user) end + + def test_show_should_not_fail_when_custom_values_are_nil + user = User.find(2) + + # Create a custom field to illustrate the issue + custom_field = CustomField.create!(:name => 'Testing', :field_format => 'text') + custom_value = user.custom_values.build(:custom_field => custom_field).save! + + get :show, :id => 2 + assert_response :success + end + def test_show_inactive get :show, :id => 5 assert_response 404 Index: test/functional/projects_controller_test.rb =================================================================== --- test/functional/projects_controller_test.rb (revision 2835) +++ test/functional/projects_controller_test.rb (working copy) @@ -161,6 +161,16 @@ assert_equal Project.find_by_identifier('ecookbook'), assigns(:project) end + def test_show_should_not_fail_when_custom_values_are_nil + project = Project.find_by_identifier('ecookbook') + project.custom_values.first.update_attribute(:value, nil) + get :show, :id => 'ecookbook' + assert_response :success + assert_template 'show' + assert_not_nil assigns(:project) + assert_equal Project.find_by_identifier('ecookbook'), assigns(:project) + end + def test_private_subprojects_hidden get :show, :id => 'ecookbook' assert_response :success Index: app/views/projects/show.rhtml =================================================================== --- app/views/projects/show.rhtml (revision 2835) +++ app/views/projects/show.rhtml (working copy) @@ -9,7 +9,7 @@ <%= @subprojects.collect{|p| link_to(h(p), :action => 'show', :id => p)}.join(", ") %> <% end %> <% @project.custom_values.each do |custom_value| %> - <% if !custom_value.value.empty? %> + <% if !(custom_value.value || '').empty? %>
  • <%= custom_value.custom_field.name%>: <%=h show_value(custom_value) %>
  • <% end %> <% end %> Index: app/views/account/show.rhtml =================================================================== --- app/views/account/show.rhtml (revision 2835) +++ app/views/account/show.rhtml (working copy) @@ -10,7 +10,7 @@
  • <%=l(:field_mail)%>: <%= mail_to(h(@user.mail), nil, :encode => 'javascript') %>
  • <% end %> <% for custom_value in @custom_values %> - <% if !custom_value.value.empty? %> + <% if !(custom_value.value || '').empty? %>
  • <%=h custom_value.custom_field.name%>: <%=h show_value(custom_value) %>
  • <% end %> <% end %>