ChiliProject is not maintained anymore. Please be advised that there will be no more updates.
We do not recommend that you setup new ChiliProject instances and we urge all existing users to migrate their data to a maintained system, e.g. Redmine. We will provide a migration script later. In the meantime, you can use the instructions by Christian Daehn.
error 500 when uploading a new file to an existing document (Bug #1008)
Description
This is with ChiliProject 3.1.0.d61ad0130 (MySQL)
Processing DocumentsController#add_attachment (for XXX.XXX.XXX.XXX at 2012-05-03 11:38:53) [POST] Parameters: {"commit"=>"Add", "action"=>"add_attachment", "authenticity_token"=>"XXXXXXXXXXXXXXXXXXXXXXXX", "id"=>"29", "controller"=>"documents", "attachments"=>{"1"=>{"file"=>#<File:/tmp/RackMultipart20120503-23495-19g45wf-0>, "description"=>""}}} NoMethodError (undefined method `container' for [:unsaved, []]:Array): app/controllers/documents_controller.rb:88:in `add_attachment' passenger (3.0.7) lib/phusion_passenger/rack/request_handler.rb:96:in `process_request' passenger (3.0.7) lib/phusion_passenger/abstract_request_handler.rb:513:in `accept_and_process_next_request' passenger (3.0.7) lib/phusion_passenger/abstract_request_handler.rb:274:in `main_loop' passenger (3.0.7) lib/phusion_passenger/classic_rails/application_spawner.rb:321:in `start_request_handler' passenger (3.0.7) lib/phusion_passenger/classic_rails/application_spawner.rb:275:in `send' passenger (3.0.7) lib/phusion_passenger/classic_rails/application_spawner.rb:275:in `handle_spawn_application' passenger (3.0.7) lib/phusion_passenger/utils.rb:479:in `safe_fork' passenger (3.0.7) lib/phusion_passenger/classic_rails/application_spawner.rb:270:in `handle_spawn_application' passenger (3.0.7) lib/phusion_passenger/abstract_server.rb:357:in `__send__' passenger (3.0.7) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop' passenger (3.0.7) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously' passenger (3.0.7) lib/phusion_passenger/abstract_server.rb:180:in `start' passenger (3.0.7) lib/phusion_passenger/classic_rails/application_spawner.rb:149:in `start' passenger (3.0.7) lib/phusion_passenger/spawn_manager.rb:219:in `spawn_rails_application' passenger (3.0.7) lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add' passenger (3.0.7) lib/phusion_passenger/spawn_manager.rb:214:in `spawn_rails_application' passenger (3.0.7) lib/phusion_passenger/abstract_server_collection.rb:82:in `synchronize' passenger (3.0.7) lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize' passenger (3.0.7) lib/phusion_passenger/spawn_manager.rb:213:in `spawn_rails_application' passenger (3.0.7) lib/phusion_passenger/spawn_manager.rb:132:in `spawn_application' passenger (3.0.7) lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application' passenger (3.0.7) lib/phusion_passenger/abstract_server.rb:357:in `__send__' passenger (3.0.7) lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop' passenger (3.0.7) lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously' passenger (3.0.7) helper-scripts/passenger-spawn-server:99 Rendering /srv/http/chiliproject/public/500.html (500 Internal Server Error)
Associated revisions
Correct email sending on attachment to document #1008
History
Updated by Robert Mitwicki at 2012-05-06 07:43 pm
I can confirm that. I have the same problem
Updated by Gregor Schmidt at 2012-05-18 07:52 pm
Thanks for taking the time to report and confirm this bug.
I have spent some time to look into it. Below are some hints for the Chili maintainers, so they may save some minutes.
To reproduce the problem, you need to enable email notifications for Document added. It was introduced by the "one mail per recipient" feature. There seems to be no test case which covers adding an attachment to document. The diff below seems to fix the problem.
1diff --git a/app/controllers/documents_controller.rb b/app/controllers/documents
2index 4356ea0..eb5799d 100644
3--- a/app/controllers/documents_controller.rb
4+++ b/app/controllers/documents_controller.rb
5@@ -85,7 +85,7 @@ class DocumentsController < ApplicationController
6
7 if attachments.present? && attachments[:files].present? && Setting.notified
8 # TODO: refactor
9- attachments.first.container.recipients.each do |recipient|
10+ @document.recipients.each do |recipient|
11 Mailer.deliver_attachments_added(attachments[:files], recipient)
12 end
13 end
Updated by Holger Just at 2012-05-18 08:20 pm
Thanks for researching that. We're going to include this into 3.2.0
- Target version set to 3.2.0
- Status changed from Open to Ready for review
Updated by Felix Schäfer at 2012-05-18 08:48 pm
Added a test and pushed Gregor's solution in 1d3cdf1, thanks a lot!
- Status changed from Ready for review to Closed
Updated by Gregor Schmidt at 2012-05-19 07:32 pm
@Felix: Great. Thanks for writing a proper test.
@Matthieu, @Robert: If you do not want to update to the master branch of ChiliProject, you may also just deactivate email notifications for "Document added". This way you won't get notifications, but at least you are able to add files to attachments.
Gregor