Project

General

Profile

Actions

Defect #7604

closed

ActionView::TemplateError (undefined method `name' for nil:NilClass)

Added by Morgan Jones almost 14 years ago. Updated almost 14 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
Issues
Target version:
Start date:
2011-02-11
Due date:
% Done:

0%

Estimated time:
Resolution:
Fixed
Affected version:

Description

My school (Regis Jesuit High School) is using Redmine to manage our newsroom publication workflow. It's super useful, but I keep getting an error when submitting edits to certain issues.

Error:

Processing IssuesController#update (for 174.253.181.218 at 2011-02-10 17:44:42) [PUT]  Parameters: {"time_entry"=>{"comments"=>"", "activity_id"=>"", "hours"=>""}, "commit"=>"Submit", "notes"=>"hello", "action"=>"update", "_method"=>"put", "authenticity_token"=>"D0eCFy/UxVBiZvKK0db3OwQacDvMpuAwprt+q8P2JpE=", "id"=>"100", "issue"=>{"start_date"=>"2011-02-09", "estimated_hours"=>"", "priority_id"=>"4", "parent_issue_id"=>"", "lock_version"=>"4", "fixed_version_id"=>"6", "done_ratio"=>"0", "assigned_to_id"=>"1", "subject"=>"Minecraft Feature Spread", "tracker_id"=>"21", "due_date"=>"", "status_id"=>"7", "description"=>"This spread will be a
 look into the wondrous world of Minecraft as well as some of the guys who play 
it at RJ.\r\n\r\nMinecraft is a very cool game that is much like building a model train set: only a few people appreciate those who play it and the rest think i
t's a complete waste of time.\r\n\r\nHowever, people have made some pretty aweso
me worlds with Minecraft, including the social media platform Reddit, whose play
ers have built things like the Golden Gate bridge and the Statue of Liberty, som
etimes to scale.\r\n\r\nAlthough it seems like a creativity tool only, Minecraft adds the twist of monsters that come out at night and attack the player, making
 it a combination of creativity and tower defense."}, "controller"=>"issues", "a
ttachments"=>{"1"=>{"description"=>""}}}

ActionView::TemplateError (undefined method `name' for nil:NilClass) on line #10
 of app/views/mailer/_issue_text_plain.rhtml:7: <%=l(:field_assigned_to)%>: <%= issue.assigned_to %>
8: <%=l(:field_category)%>: <%= issue.category %>
9: <%=l(:field_fixed_version)%>: <%= issue.fixed_version %>
10: <% issue.custom_values.each do |c| %><%= c.custom_field.name %>: <%= show_value(c) %>
11: <% end %>
12: 
13: <%= issue.description %>

    app/views/mailer/_issue_text_plain.rhtml:10:in `_run_rhtml_app47views47mailer47_issue_text_plain46rhtml_locals_issue_issue_text_plain_issue_url_object'
    app/views/mailer/_issue_text_plain.rhtml:10:in `_run_rhtml_app47views47mailer47_issue_text_plain46rhtml_locals_issue_issue_text_plain_issue_url_object'
    app/views/mailer/issue_edit.text.plain.rhtml:9:in `_run_rhtml_app47views47mailer47issue_edit46text46plain46rhtml'
    app/models/mailer.rb:398:in `render_multipart'
    app/models/mailer.rb:79:in `issue_edit'
    app/models/journal_observer.rb:24:in `after_create'
    /usr/lib/ruby/1.8/observer.rb:185:in `notify_observers'
    /usr/lib/ruby/1.8/observer.rb:184:in `each'
    /usr/lib/ruby/1.8/observer.rb:184:in `notify_observers'
    app/models/journal.rb:43:in `save'
    app/models/issue.rb:848:in `create_journal'    app/models/issue.rb:554:in `save_issue_with_child_records'
    app/models/issue.rb:536:in `save_issue_with_child_records'    app/controllers/issues_controller.rb:170:in `update'
    passenger (2.2.15) lib/phusion_passenger/rack/request_handler.rb:92:in `process_request'
    passenger (2.2.15) lib/phusion_passenger/abstract_request_handler.rb:207:in 
`main_loop'    passenger (2.2.15) lib/phusion_passenger/railz/application_spawner.rb:441:in
 `start_request_handler'    passenger (2.2.15) lib/phusion_passenger/railz/application_spawner.rb:381:in
 `handle_spawn_application'    passenger (2.2.15) lib/phusion_passenger/utils.rb:252:in `safe_fork'
    passenger (2.2.15) lib/phusion_passenger/railz/application_spawner.rb:377:in `handle_spawn_application'
    passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:352:in `__send__'
    passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:352:in `main_loop'
    passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously'
    passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:163:in `start'
    passenger (2.2.15) lib/phusion_passenger/railz/application_spawner.rb:222:in `start'
    passenger (2.2.15) lib/phusion_passenger/spawn_manager.rb:253:in `spawn_rails_application'
    passenger (2.2.15) lib/phusion_passenger/abstract_server_collection.rb:126:in `lookup_or_add'
    passenger (2.2.15) lib/phusion_passenger/spawn_manager.rb:247:in `spawn_rails_application'
    passenger (2.2.15) lib/phusion_passenger/abstract_server_collection.rb:80:in `synchronize'
    passenger (2.2.15) lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
    passenger (2.2.15) lib/phusion_passenger/spawn_manager.rb:246:in `spawn_rails_application'
    passenger (2.2.15) lib/phusion_passenger/spawn_manager.rb:145:in `spawn_application'
    passenger (2.2.15) lib/phusion_passenger/spawn_manager.rb:278:in `handle_spawn_application'
    passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:352:in `__send__'
    passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:352:in `main_loop'
    passenger (2.2.15) lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously'

Rendering /etc/redmine/public/500.html (500 Internal Server Error)

I actually did manage to fix this one by adding two or three lines of code in app/views/mailer/_issue_text_plain.rhtml and app/views/mailer/_issue_text_html.rhtml:

_issue_text_plain.rhtml

Find:

<% issue.custom_values.each do |c| %><%= c.custom_field.name %>: <%= show_value(c) %>

Replace with:

<% issue.custom_values.each do |c| %>
<% unless c.nil? || c.custom_field.nil? %>
<%= c.custom_field.name %>: <%= show_value(c) %>
<% end %>

_issue_text_html.rhtml

Find:

<% issue.custom_values.each do |c| %>
  <li><%=h c.custom_field.name %>: <%=h show_value(c) %></li>
<% end %>

Replace with:

<% issue.custom_values.each do |c| %>
  <% unless c.nil? || c.custom_field.nil? %>
  <li><%=h c.custom_field.name %>: <%=h show_value(c) %></li>
  <% end %>
<% end %>

Apparently one of the custom fields for an issue can be nil? Why exactly is this? I'll admit, my fix is kind of a kludge but does the job nicely...

Environment Info

About your application's environment
Ruby version              1.8.7 (i686-linux)
RubyGems version          1.3.7
Rack version              1.0
Rails version             2.3.5
Active Record version     2.3.5
Active Resource version   2.3.5
Action Mailer version     2.3.5
Active Support version    2.3.5
Application root          /etc/redmine
Environment               production
Database adapter          mysql
Database schema version   20101115203855

About your Redmine plugins
Redmine Wiki Extensions plugin                   0.2.4
Redmine Whining plugin                           0.0.4
Redmine User Profiles plugin                     0.0.2
Redmine Ultraviolet Syntax highlighting plugin   0.0.3
Redmine JChat                                    0.2.0
Redmine Theme Changer plugin                     0.0.2
Redmine ICalendar Export Plugin (aka redmics)    1.1

Other Info

Redmine Version: 1.1.1 SVN
MySQL Version: mysql  Ver 14.14 Distrib 5.1.49, for debian-linux-gnu (i686) using readline 6.1

Thanks!

Actions

Also available in: Atom PDF