Bug #967
closedbookmark fails if its name includes a "."
Description
Added the bookmark "facts.architecture = x86_64". After this bookmark was added, I'm unable to view any bookmarks, instead the web server returns an HTTP 500. Here is a snippet from the production.log.
- Begin Snip ###########################
Rendering template within layouts/application
Rendering bookmarks/index
ActionView::TemplateError (edit_bookmark_url failed to generate from {:action=>"edit", :controller=>"bookmarks", :id=>"facts.architecture"}, expected: {:action=>"edit", :controller=>"bookmarks"}, diff: {:id=>"facts.architecture"}) on line #14 of app/views/bookmarks/index.html.erb:
11: </tr>
12: <% for bookmark in @bookmarks >
13: <tr class="<= cycle("even", "odd") ->">
14: <td><= link_to_if_authorized(h(bookmark.name), hash_for_edit_bookmark_path(:id => bookmark.name)) ></td>
15: <td><=h bookmark.query ></td>
16: <td><=h bookmark.controller ></td>
17: <td><=h bookmark.public %></td>
app/helpers/application_helper.rb:113:in `link_to_if_authorized'
app/views/bookmarks/index.html.erb:14
app/views/bookmarks/index.html.erb:12:in `each'
app/views/bookmarks/index.html.erb:12
app/controllers/bookmarks_controller.rb:7:in `index'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/rack/request_handler.rb:96:in `process_request'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/abstract_request_handler.rb:513:in `accept_and_process_next_request'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/abstract_request_handler.rb:274:in `main_loop'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/classic_rails/application_spawner.rb:321:in `start_request_handler'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/classic_rails/application_spawner.rb:275:in `send'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/classic_rails/application_spawner.rb:275:in `handle_spawn_application'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/utils.rb:479:in `safe_fork'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/classic_rails/application_spawner.rb:270:in `handle_spawn_application'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/abstract_server.rb:357:in `__send__'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/abstract_server.rb:180:in `start'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/classic_rails/application_spawner.rb:149:in `start'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/spawn_manager.rb:219:in `spawn_rails_application'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/abstract_server_collection.rb:132:in `lookup_or_add'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/spawn_manager.rb:214:in `spawn_rails_application'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/abstract_server_collection.rb:82:in `synchronize'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/spawn_manager.rb:213:in `spawn_rails_application'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/spawn_manager.rb:132:in `spawn_application'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/spawn_manager.rb:275:in `handle_spawn_application'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/abstract_server.rb:357:in `__send__'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/abstract_server.rb:357:in `server_main_loop'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/lib/phusion_passenger/abstract_server.rb:206:in `start_synchronously'
/usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/helper-scripts/passenger-spawn-server:99
Rendering /usr/share/foreman/public/500.html (500 Internal Server Error)
Updated by Ohad Levy over 13 years ago
- Category set to Rails
- Assignee set to Ohad Levy
- Target version set to 0.4
I can confirm it, this is caused by a failure to extract the bookmark id since it has space in its name.
nevertheless, the bookmark should be working already (you can see it at the host dropdown).
I'll send a patch tomorrow.
Updated by Ohad Levy over 13 years ago
- Subject changed from After adding bookmark, bookmarks page fails to load to bookmark fails if its name includes a "."
Updated by Ohad Levy over 13 years ago
- Status changed from New to Closed
- % Done changed from 0 to 100
Applied in changeset 7159f2a2b696e517ec3820b2091f6039416a4c54.