From: Neil Smith <neil.git@njae.me.uk> Date: Fri, 17 Jul 2009 14:11:29 +0000 (+0000) Subject: Added routes and forms. No update action as yet. X-Git-Url: https://git.njae.me.uk/?a=commitdiff_plain;h=87b29f4f401626c3b21df387cf7cd75677ea56cf;p=feedcatcher.git Added routes and forms. No update action as yet. --- diff --git a/app/controllers/feed_controller.rb b/app/controllers/feed_controller.rb index f1597c0..7fa4e28 100644 --- a/app/controllers/feed_controller.rb +++ b/app/controllers/feed_controller.rb @@ -4,7 +4,7 @@ class FeedController < ApplicationController end def show - @feed_items = FeedItem.find_all_by_feed_name(params[:id]) + @feed_items = FeedItem.find_all_by_feed_name(params[:feed_name]) end def update diff --git a/app/models/feed_item.rb b/app/models/feed_item.rb index d875a8a..ce5b8c6 100644 --- a/app/models/feed_item.rb +++ b/app/models/feed_item.rb @@ -1,2 +1,21 @@ class FeedItem < ActiveRecord::Base + + require 'cgi' # needed for url decoding + + validates_presence_of :feed_name, :title, :description + validate :feed_name_must_be_legal + +protected + + def feed_name_must_be_legal + if url_encode(feed_name) != feed_name or + CGI::unescape(feed_name) != feed_name or + feed_name == 'index' or + feed_name == 'show' or + feed_name == 'update' or + feed_name == 'action' + errors.add(:feed_name, 'is an invalid feed name') + end + end + end diff --git a/app/views/feed/index.html.erb b/app/views/feed/index.html.erb index cdac0ac..cd75a00 100644 --- a/app/views/feed/index.html.erb +++ b/app/views/feed/index.html.erb @@ -1,6 +1,14 @@ <h1>Feeds available</h1> + +<% form_for :feed_item, :url => update_url do |form| %> + <p>Set feed <%= form.text_field :feed_name, :size => 20 %> + to include <%= form.text_field :title, :size => 30 %> + containing <%= form.text_field :description, :size => 50 %> + <%= submit_tag %></p> +<% end %> + <ul> <% for feed in @feeds %> - <li><%= h feed.feed_name %></li> + <li><%= link_to(h(feed.feed_name), (feed_url(:feed_name => feed.feed_name))) %></li> <% end %> </ul> \ No newline at end of file diff --git a/app/views/feed/show.html.erb b/app/views/feed/show.html.erb index 374ee87..9c5180a 100644 --- a/app/views/feed/show.html.erb +++ b/app/views/feed/show.html.erb @@ -1,4 +1,13 @@ -<h1>Contents of feed <%= params[:id] %></h1> +<h1>Contents of feed <%= h params[:feed_name] %></h1> +<p><%= link_to("List of all feeds", index_url) %></p> + +<% form_for :feed_item, :url => update_url(params[:feed_name]) do |form| %> + <p>Set feed <%= form.text_field :feed_name, :size => 20, :value => h(params[:feed_name]) %> + to include <%= form.text_field :title, :size => 30 %> + containing <%= form.text_field :description, :size => 50 %> + <%= submit_tag %></p> +<% end %> + <dl> <% for item in @feed_items %> <dt><%= h item.title %></dt> diff --git a/config/routes.rb b/config/routes.rb index 4f3d9d2..7754dd1 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -30,14 +30,28 @@ ActionController::Routing::Routes.draw do |map| # admin.resources :products # end + map.index 'index.:format', + :conditions => { :method => :get }, + :controller => 'feed', + :action => 'index' + map.feed ':feed_name.:format', + :conditions => { :method => :get }, + :controller => 'feed', + :action => 'show' + map.update ':feed_name', + :conditions => { :method => :post }, + :defaults => { :feed_name => nil }, + :controller => 'feed', + :action => 'update' + # You can have the root of your site routed with map.root -- just remember to delete public/index.html. - # map.root :controller => "welcome" + map.root :controller => "feed" # See how all your routes lay out with "rake routes" # Install the default routes as the lowest priority. # Note: These default routes make all actions in every controller accessible via GET requests. You should # consider removing the them or commenting them out if you're using named routes and resources. - map.connect ':controller/:action/:id' - map.connect ':controller/:action/:id.:format' +# map.connect ':controller/:action/:id' +# map.connect ':controller/:action/:id.:format' end diff --git a/log/development.log b/log/development.log index a56b103..a6111ee 100644 --- a/log/development.log +++ b/log/development.log @@ -808,3 +808,854 @@ Processing FeedController#show (for 127.0.0.1 at 2009-07-17 11:57:08) [GET] [4;35;1mFeedItem Load (0.2ms)[0m [0mSELECT * FROM `feed_items` WHERE (`feed_items`.`feed_name` = 'feed-a') [0m Rendering feed/show Completed in 22ms (View: 9, DB: 1) | 200 OK [http://localhost/feed/show/feed-a] + [4;36;1mSQL (0.1ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.1ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#index (for 127.0.0.1 at 2009-07-17 14:32:03) [GET] + [4;36;1mFeedItem Load (0.2ms)[0m [0;1mSELECT DISTINCT feed_name FROM `feed_items` [0m +Rendering feed/index + [4;35;1mFeedItem Columns (1.1ms)[0m [0mSHOW FIELDS FROM `feed_items`[0m +Completed in 20ms (View: 4, DB: 2) | 200 OK [http://localhost/] + [4;36;1mSQL (0.1ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.1ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#index (for 127.0.0.1 at 2009-07-17 14:32:06) [GET] + [4;36;1mFeedItem Load (0.2ms)[0m [0;1mSELECT DISTINCT feed_name FROM `feed_items` [0m +Rendering feed/index + [4;35;1mFeedItem Columns (1.0ms)[0m [0mSHOW FIELDS FROM `feed_items`[0m +Completed in 19ms (View: 4, DB: 1) | 200 OK [http://localhost/index] + [4;36;1mSQL (0.1ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.1ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#show (for 127.0.0.1 at 2009-07-17 14:32:10) [GET] + Parameters: {"feed_name"=>"feed-a"} + [4;36;1mFeedItem Columns (1.0ms)[0m [0;1mSHOW FIELDS FROM `feed_items`[0m + [4;35;1mFeedItem Load (0.1ms)[0m [0mSELECT * FROM `feed_items` WHERE (`feed_items`.`feed_name` IS NULL) [0m +Rendering feed/show +Completed in 17ms (View: 1, DB: 1) | 200 OK [http://localhost/feed-a] + [4;36;1mSQL (0.1ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.1ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#show (for 127.0.0.1 at 2009-07-17 14:33:02) [GET] + Parameters: {"feed_name"=>"feed-a"} + [4;36;1mFeedItem Columns (1.1ms)[0m [0;1mSHOW FIELDS FROM `feed_items`[0m + [4;35;1mFeedItem Load (0.2ms)[0m [0mSELECT * FROM `feed_items` WHERE (`feed_items`.`feed_name` = 'feed-a') [0m +Rendering feed/show +Completed in 26ms (View: 9, DB: 1) | 200 OK [http://localhost/feed-a] + [4;36;1mSQL (0.2ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.3ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing ApplicationController#index (for 127.0.0.1 at 2009-07-17 14:35:19) [GET] + +ActionController::RoutingError (No route matches "/feed/show/feed-a" with {:method=>:get}): + /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' + /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' + /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' + /usr/lib/ruby/1.8/webrick/server.rb:162:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' + /usr/lib/ruby/1.8/webrick/server.rb:95:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:92:in `each' + /usr/lib/ruby/1.8/webrick/server.rb:92:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:23:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:82:in `start' + +Rendering rescues/layout (not_found) + [4;36;1mSQL (0.1ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.1ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#show (for 127.0.0.1 at 2009-07-17 14:40:06) [GET] + Parameters: {"feed_name"=>"feed-a"} + [4;36;1mFeedItem Columns (1.0ms)[0m [0;1mSHOW FIELDS FROM `feed_items`[0m + [4;35;1mFeedItem Load (0.2ms)[0m [0mSELECT * FROM `feed_items` WHERE (`feed_items`.`feed_name` = 'feed-a') [0m +Rendering feed/show +ERROR: compiling _run_erb_app47views47feed47show46html46erb RAISED compile error +/home/neil/programming/rails/feedcatcher/app/views/feed/show.html.erb:2: syntax error, unexpected ';', expecting ')' +@output_buffer.concat "<p>"; @output_buffer.concat(( link_to("List of all feeds", index_url ).to_s); @output_buffer.concat "</p>\n" + ^ +Function body: def _run_erb_app47views47feed47show46html46erb(local_assigns) + old_output_buffer = output_buffer;;@output_buffer = ''; __in_erb_template=true ; @output_buffer.concat "<h1>Contents of feed "; @output_buffer.concat(( params[:feed_name] ).to_s); @output_buffer.concat "</h1>\n" +@output_buffer.concat "<p>"; @output_buffer.concat(( link_to("List of all feeds", index_url ).to_s); @output_buffer.concat "</p>\n" +@output_buffer.concat "<dl>\n" +@output_buffer.concat " "; for item in @feed_items ; @output_buffer.concat "\n" +@output_buffer.concat " <dt>"; @output_buffer.concat(( h item.title ).to_s); @output_buffer.concat "</dt>\n" +@output_buffer.concat " <dd><em>"; @output_buffer.concat(( h item.description ).to_s); @output_buffer.concat "</em></dd>\n" +@output_buffer.concat " "; end ; @output_buffer.concat "\n" +@output_buffer.concat "</dl>\n" +@output_buffer + ensure + self.output_buffer = old_output_buffer + end +Backtrace: /home/neil/programming/rails/feedcatcher/app/views/feed/show.html.erb:12:in `compile!' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_view/renderable.rb:61:in `compile' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_view/renderable.rb:28:in `render' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_view/template.rb:194:in `render_template' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_view/base.rb:260:in `render' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:1241:in `render_for_file' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:937:in `render_without_benchmark' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb:51:in `render' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:in `ms' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:10:in `realtime' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:in `ms' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb:51:in `render' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:1317:in `default_render' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:1323:in `perform_action_without_filters' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/filters.rb:617:in `call_filters' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/filters.rb:610:in `perform_action_without_benchmark' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:in `ms' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:10:in `realtime' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:in `ms' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/rescue.rb:160:in `perform_action_without_flash' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/flash.rb:141:in `perform_action' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:523:in `send' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:523:in `process_without_filters' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/filters.rb:606:in `process' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:391:in `process' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:386:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/routing/route_set.rb:433:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:88:in `dispatch' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:111:in `_call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:82:in `initialize' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:29:in `call' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:29:in `call' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:9:in `cache' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:28:in `call' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/head.rb:9:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/methodoverride.rb:24:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/params_parser.rb:15:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/rewindable_input.rb:25:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/session/cookie_store.rb:93:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/reloader.rb:9:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/failsafe.rb:11:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/lock.rb:11:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/lock.rb:11:in `synchronize' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/lock.rb:11:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:106:in `call' +/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/static.rb:31:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/urlmap.rb:46:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/urlmap.rb:40:in `each' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/urlmap.rb:40:in `call' +/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/log_tailer.rb:17:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/content_length.rb:13:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/handler/webrick.rb:46:in `service' +/usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' +/usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' +/usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' +/usr/lib/ruby/1.8/webrick/server.rb:162:in `start' +/usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' +/usr/lib/ruby/1.8/webrick/server.rb:95:in `start' +/usr/lib/ruby/1.8/webrick/server.rb:92:in `each' +/usr/lib/ruby/1.8/webrick/server.rb:92:in `start' +/usr/lib/ruby/1.8/webrick/server.rb:23:in `start' +/usr/lib/ruby/1.8/webrick/server.rb:82:in `start' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/handler/webrick.rb:13:in `run' +/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/commands/server.rb:111 +/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' +/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' +script/server:3 + +ActionView::TemplateError (compile error +/home/neil/programming/rails/feedcatcher/app/views/feed/show.html.erb:2: syntax error, unexpected ';', expecting ')' +@output_buffer.concat "<p>"; @output_buffer.concat(( link_to("List of all feeds", index_url ).to_s); @output_buffer.concat "</p>\n" + ^) on line #2 of app/views/feed/show.html.erb: +1: <h1>Contents of feed <%= params[:feed_name] %></h1> +2: <p><%= link_to("List of all feeds", index_url %></p> +3: <dl> +4: <% for item in @feed_items %> +5: <dt><%= h item.title %></dt> + + app/views/feed/show.html.erb:12:in `compile!' + /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' + /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' + /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' + /usr/lib/ruby/1.8/webrick/server.rb:162:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' + /usr/lib/ruby/1.8/webrick/server.rb:95:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:92:in `each' + /usr/lib/ruby/1.8/webrick/server.rb:92:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:23:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:82:in `start' + +Rendered rescues/_trace (95.8ms) +Rendered rescues/_request_and_response (1.0ms) +Rendering rescues/layout (internal_server_error) + [4;36;1mSQL (0.1ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.1ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#show (for 127.0.0.1 at 2009-07-17 14:40:50) [GET] + Parameters: {"feed_name"=>"feed-a"} + [4;36;1mFeedItem Columns (1.0ms)[0m [0;1mSHOW FIELDS FROM `feed_items`[0m + [4;35;1mFeedItem Load (0.2ms)[0m [0mSELECT * FROM `feed_items` WHERE (`feed_items`.`feed_name` = 'feed-a') [0m +Rendering feed/show +ERROR: compiling _run_erb_app47views47feed47show46html46erb RAISED compile error +/home/neil/programming/rails/feedcatcher/app/views/feed/show.html.erb:2: syntax error, unexpected ';', expecting ')' +@output_buffer.concat "<p>"; @output_buffer.concat(( link_to("List of all feeds", index_url ).to_s); @output_buffer.concat "</p>\n" + ^ +Function body: def _run_erb_app47views47feed47show46html46erb(local_assigns) + old_output_buffer = output_buffer;;@output_buffer = ''; __in_erb_template=true ; @output_buffer.concat "<h1>Contents of feed "; @output_buffer.concat(( params[:feed_name] ).to_s); @output_buffer.concat "</h1>\n" +@output_buffer.concat "<p>"; @output_buffer.concat(( link_to("List of all feeds", index_url ).to_s); @output_buffer.concat "</p>\n" +@output_buffer.concat "<dl>\n" +@output_buffer.concat " "; for item in @feed_items ; @output_buffer.concat "\n" +@output_buffer.concat " <dt>"; @output_buffer.concat(( h item.title ).to_s); @output_buffer.concat "</dt>\n" +@output_buffer.concat " <dd><em>"; @output_buffer.concat(( h item.description ).to_s); @output_buffer.concat "</em></dd>\n" +@output_buffer.concat " "; end ; @output_buffer.concat "\n" +@output_buffer.concat "</dl>\n" +@output_buffer + ensure + self.output_buffer = old_output_buffer + end +Backtrace: /home/neil/programming/rails/feedcatcher/app/views/feed/show.html.erb:12:in `compile!' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_view/renderable.rb:61:in `compile' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_view/renderable.rb:28:in `render' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_view/template.rb:194:in `render_template' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_view/base.rb:260:in `render' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:1241:in `render_for_file' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:937:in `render_without_benchmark' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb:51:in `render' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:in `ms' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:10:in `realtime' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:in `ms' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb:51:in `render' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:1317:in `default_render' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:1323:in `perform_action_without_filters' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/filters.rb:617:in `call_filters' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/filters.rb:610:in `perform_action_without_benchmark' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:in `ms' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:10:in `realtime' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:in `ms' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/rescue.rb:160:in `perform_action_without_flash' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/flash.rb:141:in `perform_action' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:523:in `send' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:523:in `process_without_filters' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/filters.rb:606:in `process' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:391:in `process' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:386:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/routing/route_set.rb:433:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:88:in `dispatch' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:111:in `_call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:82:in `initialize' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:29:in `call' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:29:in `call' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:9:in `cache' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:28:in `call' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/head.rb:9:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/methodoverride.rb:24:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/params_parser.rb:15:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/rewindable_input.rb:25:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/session/cookie_store.rb:93:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/reloader.rb:9:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/failsafe.rb:11:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/lock.rb:11:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/lock.rb:11:in `synchronize' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/lock.rb:11:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:106:in `call' +/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/static.rb:31:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/urlmap.rb:46:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/urlmap.rb:40:in `each' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/urlmap.rb:40:in `call' +/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/log_tailer.rb:17:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/content_length.rb:13:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/handler/webrick.rb:46:in `service' +/usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' +/usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' +/usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' +/usr/lib/ruby/1.8/webrick/server.rb:162:in `start' +/usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' +/usr/lib/ruby/1.8/webrick/server.rb:95:in `start' +/usr/lib/ruby/1.8/webrick/server.rb:92:in `each' +/usr/lib/ruby/1.8/webrick/server.rb:92:in `start' +/usr/lib/ruby/1.8/webrick/server.rb:23:in `start' +/usr/lib/ruby/1.8/webrick/server.rb:82:in `start' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/handler/webrick.rb:13:in `run' +/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/commands/server.rb:111 +/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' +/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' +script/server:3 + +ActionView::TemplateError (compile error +/home/neil/programming/rails/feedcatcher/app/views/feed/show.html.erb:2: syntax error, unexpected ';', expecting ')' +@output_buffer.concat "<p>"; @output_buffer.concat(( link_to("List of all feeds", index_url ).to_s); @output_buffer.concat "</p>\n" + ^) on line #2 of app/views/feed/show.html.erb: +1: <h1>Contents of feed <%= params[:feed_name] %></h1> +2: <p><%= link_to("List of all feeds", index_url %></p> +3: <dl> +4: <% for item in @feed_items %> +5: <dt><%= h item.title %></dt> + + app/views/feed/show.html.erb:12:in `compile!' + /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' + /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' + /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' + /usr/lib/ruby/1.8/webrick/server.rb:162:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' + /usr/lib/ruby/1.8/webrick/server.rb:95:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:92:in `each' + /usr/lib/ruby/1.8/webrick/server.rb:92:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:23:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:82:in `start' + +Rendered rescues/_trace (164.7ms) +Rendered rescues/_request_and_response (0.8ms) +Rendering rescues/layout (internal_server_error) + [4;36;1mSQL (0.8ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.2ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#index (for 127.0.0.1 at 2009-07-17 14:40:54) [GET] + [4;36;1mFeedItem Load (0.2ms)[0m [0;1mSELECT DISTINCT feed_name FROM `feed_items` [0m +Rendering feed/index + [4;35;1mFeedItem Columns (1.1ms)[0m [0mSHOW FIELDS FROM `feed_items`[0m +Completed in 31ms (View: 13, DB: 2) | 200 OK [http://localhost/] + [4;36;1mSQL (0.2ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.1ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#show (for 127.0.0.1 at 2009-07-17 14:40:56) [GET] + Parameters: {"feed_name"=>"feed-b"} + [4;36;1mFeedItem Columns (1.9ms)[0m [0;1mSHOW FIELDS FROM `feed_items`[0m + [4;35;1mFeedItem Load (0.2ms)[0m [0mSELECT * FROM `feed_items` WHERE (`feed_items`.`feed_name` = 'feed-b') [0m +Rendering feed/show +ERROR: compiling _run_erb_app47views47feed47show46html46erb RAISED compile error +/home/neil/programming/rails/feedcatcher/app/views/feed/show.html.erb:2: syntax error, unexpected ';', expecting ')' +@output_buffer.concat "<p>"; @output_buffer.concat(( link_to("List of all feeds", index_url ).to_s); @output_buffer.concat "</p>\n" + ^ +Function body: def _run_erb_app47views47feed47show46html46erb(local_assigns) + old_output_buffer = output_buffer;;@output_buffer = ''; __in_erb_template=true ; @output_buffer.concat "<h1>Contents of feed "; @output_buffer.concat(( params[:feed_name] ).to_s); @output_buffer.concat "</h1>\n" +@output_buffer.concat "<p>"; @output_buffer.concat(( link_to("List of all feeds", index_url ).to_s); @output_buffer.concat "</p>\n" +@output_buffer.concat "<dl>\n" +@output_buffer.concat " "; for item in @feed_items ; @output_buffer.concat "\n" +@output_buffer.concat " <dt>"; @output_buffer.concat(( h item.title ).to_s); @output_buffer.concat "</dt>\n" +@output_buffer.concat " <dd><em>"; @output_buffer.concat(( h item.description ).to_s); @output_buffer.concat "</em></dd>\n" +@output_buffer.concat " "; end ; @output_buffer.concat "\n" +@output_buffer.concat "</dl>\n" +@output_buffer + ensure + self.output_buffer = old_output_buffer + end +Backtrace: /home/neil/programming/rails/feedcatcher/app/views/feed/show.html.erb:12:in `compile!' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_view/renderable.rb:61:in `compile' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_view/renderable.rb:28:in `render' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_view/template.rb:194:in `render_template' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_view/base.rb:260:in `render' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:1241:in `render_for_file' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:937:in `render_without_benchmark' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb:51:in `render' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:in `ms' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:10:in `realtime' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:in `ms' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb:51:in `render' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:1317:in `default_render' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:1323:in `perform_action_without_filters' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/filters.rb:617:in `call_filters' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/filters.rb:610:in `perform_action_without_benchmark' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:in `ms' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:10:in `realtime' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:in `ms' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/rescue.rb:160:in `perform_action_without_flash' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/flash.rb:141:in `perform_action' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:523:in `send' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:523:in `process_without_filters' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/filters.rb:606:in `process' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:391:in `process' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:386:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/routing/route_set.rb:433:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:88:in `dispatch' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:111:in `_call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:82:in `initialize' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:29:in `call' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:29:in `call' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:9:in `cache' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:28:in `call' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/head.rb:9:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/methodoverride.rb:24:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/params_parser.rb:15:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/rewindable_input.rb:25:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/session/cookie_store.rb:93:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/reloader.rb:9:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/failsafe.rb:11:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/lock.rb:11:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/lock.rb:11:in `synchronize' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/lock.rb:11:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:106:in `call' +/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/static.rb:31:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/urlmap.rb:46:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/urlmap.rb:40:in `each' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/urlmap.rb:40:in `call' +/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/log_tailer.rb:17:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/content_length.rb:13:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/handler/webrick.rb:46:in `service' +/usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' +/usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' +/usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' +/usr/lib/ruby/1.8/webrick/server.rb:162:in `start' +/usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' +/usr/lib/ruby/1.8/webrick/server.rb:95:in `start' +/usr/lib/ruby/1.8/webrick/server.rb:92:in `each' +/usr/lib/ruby/1.8/webrick/server.rb:92:in `start' +/usr/lib/ruby/1.8/webrick/server.rb:23:in `start' +/usr/lib/ruby/1.8/webrick/server.rb:82:in `start' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/handler/webrick.rb:13:in `run' +/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/commands/server.rb:111 +/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' +/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' +script/server:3 + +ActionView::TemplateError (compile error +/home/neil/programming/rails/feedcatcher/app/views/feed/show.html.erb:2: syntax error, unexpected ';', expecting ')' +@output_buffer.concat "<p>"; @output_buffer.concat(( link_to("List of all feeds", index_url ).to_s); @output_buffer.concat "</p>\n" + ^) on line #2 of app/views/feed/show.html.erb: +1: <h1>Contents of feed <%= params[:feed_name] %></h1> +2: <p><%= link_to("List of all feeds", index_url %></p> +3: <dl> +4: <% for item in @feed_items %> +5: <dt><%= h item.title %></dt> + + app/views/feed/show.html.erb:12:in `compile!' + /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' + /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' + /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' + /usr/lib/ruby/1.8/webrick/server.rb:162:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' + /usr/lib/ruby/1.8/webrick/server.rb:95:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:92:in `each' + /usr/lib/ruby/1.8/webrick/server.rb:92:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:23:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:82:in `start' + +Rendered rescues/_trace (94.1ms) +Rendered rescues/_request_and_response (0.6ms) +Rendering rescues/layout (internal_server_error) + [4;36;1mSQL (0.1ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.1ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#show (for 127.0.0.1 at 2009-07-17 14:42:01) [GET] + Parameters: {"feed_name"=>"feed-b"} + [4;36;1mFeedItem Columns (1.1ms)[0m [0;1mSHOW FIELDS FROM `feed_items`[0m + [4;35;1mFeedItem Load (0.2ms)[0m [0mSELECT * FROM `feed_items` WHERE (`feed_items`.`feed_name` = 'feed-b') [0m +Rendering feed/show +Completed in 26ms (View: 9, DB: 1) | 200 OK [http://localhost/feed-b] + [4;36;1mSQL (0.1ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.1ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#index (for 127.0.0.1 at 2009-07-17 14:42:03) [GET] + [4;36;1mFeedItem Load (0.2ms)[0m [0;1mSELECT DISTINCT feed_name FROM `feed_items` [0m +Rendering feed/index + [4;35;1mFeedItem Columns (1.3ms)[0m [0mSHOW FIELDS FROM `feed_items`[0m +Completed in 26ms (View: 9, DB: 2) | 200 OK [http://localhost/index] + [4;36;1mSQL (0.1ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.1ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#show (for 127.0.0.1 at 2009-07-17 14:42:04) [GET] + Parameters: {"feed_name"=>"feed-f"} + [4;36;1mFeedItem Columns (2.5ms)[0m [0;1mSHOW FIELDS FROM `feed_items`[0m + [4;35;1mFeedItem Load (1.4ms)[0m [0mSELECT * FROM `feed_items` WHERE (`feed_items`.`feed_name` = 'feed-f') [0m +Rendering feed/show +Completed in 45ms (View: 7, DB: 4) | 200 OK [http://localhost/feed-f] + [4;36;1mSQL (0.1ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.1ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#index (for 127.0.0.1 at 2009-07-17 14:42:06) [GET] + [4;36;1mFeedItem Load (0.2ms)[0m [0;1mSELECT DISTINCT feed_name FROM `feed_items` [0m +Rendering feed/index + [4;35;1mFeedItem Columns (1.0ms)[0m [0mSHOW FIELDS FROM `feed_items`[0m +Completed in 22ms (View: 8, DB: 1) | 200 OK [http://localhost/index] + [4;36;1mSQL (0.1ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.2ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#show (for 127.0.0.1 at 2009-07-17 14:42:07) [GET] + Parameters: {"feed_name"=>"feed-j"} + [4;36;1mFeedItem Columns (1.8ms)[0m [0;1mSHOW FIELDS FROM `feed_items`[0m + [4;35;1mFeedItem Load (1.1ms)[0m [0mSELECT * FROM `feed_items` WHERE (`feed_items`.`feed_name` = 'feed-j') [0m +Rendering feed/show +Completed in 32ms (View: 6, DB: 3) | 200 OK [http://localhost/feed-j] + [4;36;1mSQL (0.1ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.1ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#index (for 127.0.0.1 at 2009-07-17 14:42:10) [GET] + [4;36;1mFeedItem Load (0.2ms)[0m [0;1mSELECT DISTINCT feed_name FROM `feed_items` [0m +Rendering feed/index + [4;35;1mFeedItem Columns (1.4ms)[0m [0mSHOW FIELDS FROM `feed_items`[0m +Completed in 23ms (View: 8, DB: 2) | 200 OK [http://localhost/index] + [4;36;1mSQL (0.2ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.2ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#show (for 127.0.0.1 at 2009-07-17 14:42:11) [GET] + Parameters: {"feed_name"=>"feed-d"} + [4;36;1mFeedItem Columns (1.0ms)[0m [0;1mSHOW FIELDS FROM `feed_items`[0m + [4;35;1mFeedItem Load (0.8ms)[0m [0mSELECT * FROM `feed_items` WHERE (`feed_items`.`feed_name` = 'feed-d') [0m +Rendering feed/show +Completed in 22ms (View: 4, DB: 2) | 200 OK [http://localhost/feed-d] + [4;36;1mSQL (0.1ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.1ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#index (for 127.0.0.1 at 2009-07-17 14:42:13) [GET] + [4;36;1mFeedItem Load (0.2ms)[0m [0;1mSELECT DISTINCT feed_name FROM `feed_items` [0m +Rendering feed/index + [4;35;1mFeedItem Columns (1.0ms)[0m [0mSHOW FIELDS FROM `feed_items`[0m +Completed in 23ms (View: 8, DB: 1) | 200 OK [http://localhost/index] + [4;36;1mSQL (0.1ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.1ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#show (for 127.0.0.1 at 2009-07-17 14:43:30) [GET] + Parameters: {"feed_name"=>"feed-b"} + [4;36;1mFeedItem Columns (1.1ms)[0m [0;1mSHOW FIELDS FROM `feed_items`[0m + [4;35;1mFeedItem Load (0.2ms)[0m [0mSELECT * FROM `feed_items` WHERE (`feed_items`.`feed_name` = 'feed-b') [0m +Rendering feed/show +Completed in 20ms (View: 4, DB: 1) | 200 OK [http://localhost/feed-b] + [4;36;1mSQL (0.1ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.1ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#show (for 127.0.0.1 at 2009-07-17 14:51:36) [GET] + Parameters: {"feed_name"=>"feed-b"} + [4;36;1mFeedItem Columns (1.1ms)[0m [0;1mSHOW FIELDS FROM `feed_items`[0m + [4;35;1mFeedItem Load (0.2ms)[0m [0mSELECT * FROM `feed_items` WHERE (`feed_items`.`feed_name` = 'feed-b') [0m +Rendering feed/show +Completed in 31ms (View: 13, DB: 1) | 200 OK [http://localhost/feed-b] + [4;36;1mSQL (0.1ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.2ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#show (for 127.0.0.1 at 2009-07-17 14:55:57) [GET] + Parameters: {"feed_name"=>"feed-b"} + [4;36;1mFeedItem Columns (1.9ms)[0m [0;1mSHOW FIELDS FROM `feed_items`[0m + [4;35;1mFeedItem Load (0.3ms)[0m [0mSELECT * FROM `feed_items` WHERE (`feed_items`.`feed_name` = 'feed-b') [0m +Rendering feed/show +Completed in 37ms (View: 12, DB: 3) | 200 OK [http://localhost/feed-b] + [4;36;1mSQL (0.2ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.1ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#index (for 127.0.0.1 at 2009-07-17 14:55:59) [GET] + [4;36;1mFeedItem Load (0.2ms)[0m [0;1mSELECT DISTINCT feed_name FROM `feed_items` [0m +Rendering feed/index + [4;35;1mFeedItem Columns (1.0ms)[0m [0mSHOW FIELDS FROM `feed_items`[0m +Completed in 25ms (View: 9, DB: 1) | 200 OK [http://localhost/index] + [4;36;1mSQL (0.5ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.1ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#show (for 127.0.0.1 at 2009-07-17 14:56:02) [GET] + Parameters: {"feed_name"=>"feed-a"} + [4;36;1mFeedItem Columns (1.7ms)[0m [0;1mSHOW FIELDS FROM `feed_items`[0m + [4;35;1mFeedItem Load (0.2ms)[0m [0mSELECT * FROM `feed_items` WHERE (`feed_items`.`feed_name` = 'feed-a') [0m +Rendering feed/show +Completed in 24ms (View: 6, DB: 3) | 200 OK [http://localhost/feed-a] + [4;36;1mSQL (0.1ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.2ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#index (for 127.0.0.1 at 2009-07-17 14:56:03) [GET] + [4;36;1mFeedItem Load (0.2ms)[0m [0;1mSELECT DISTINCT feed_name FROM `feed_items` [0m +Rendering feed/index + [4;35;1mFeedItem Columns (1.0ms)[0m [0mSHOW FIELDS FROM `feed_items`[0m +Completed in 25ms (View: 9, DB: 2) | 200 OK [http://localhost/index] + [4;36;1mSQL (0.2ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.3ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#show (for 127.0.0.1 at 2009-07-17 14:56:05) [GET] + Parameters: {"feed_name"=>"feed-h"} + [4;36;1mFeedItem Columns (1.2ms)[0m [0;1mSHOW FIELDS FROM `feed_items`[0m + [4;35;1mFeedItem Load (0.8ms)[0m [0mSELECT * FROM `feed_items` WHERE (`feed_items`.`feed_name` = 'feed-h') [0m +Rendering feed/show +Completed in 26ms (View: 7, DB: 2) | 200 OK [http://localhost/feed-h] + [4;36;1mSQL (0.1ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.1ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#index (for 127.0.0.1 at 2009-07-17 14:56:36) [GET] + [4;36;1mFeedItem Load (0.2ms)[0m [0;1mSELECT DISTINCT feed_name FROM `feed_items` [0m +Rendering feed/index + +ActionView::TemplateError (update_url failed to generate from {:action=>"update", :controller=>"feed"} - you may have ambiguous routes, or you may need to supply additional parameters for this route. content_url has the following required parameters: [:feed_name] - are they all satisfied?) on line #3 of app/views/feed/index.html.erb: +1: <h1>Feeds available</h1> +2: +3: <% form_for :feed_item, :url => update_url do |form| %> +4: <p>Set feed <%= form.text_field :feed_name, :size => 20, :value => h(params[:feed_name]) %> +5: to include <%= form.text_field :title, :size => 30 %> +6: containing <%= form.text_field :description, :size => 50 %> + + (eval):20:in `update_url' + app/views/feed/index.html.erb:3 + /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' + /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' + /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' + /usr/lib/ruby/1.8/webrick/server.rb:162:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' + /usr/lib/ruby/1.8/webrick/server.rb:95:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:92:in `each' + /usr/lib/ruby/1.8/webrick/server.rb:92:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:23:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:82:in `start' + +Rendered rescues/_trace (117.1ms) +Rendered rescues/_request_and_response (0.6ms) +Rendering rescues/layout (internal_server_error) + [4;35;1mSQL (0.1ms)[0m [0mSET NAMES 'utf8'[0m + [4;36;1mSQL (0.1ms)[0m [0;1mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#index (for 127.0.0.1 at 2009-07-17 14:57:06) [GET] + [4;35;1mFeedItem Load (0.2ms)[0m [0mSELECT DISTINCT feed_name FROM `feed_items` [0m +Rendering feed/index +ERROR: compiling _run_erb_app47views47feed47index46html46erb RAISED compile error +/home/neil/programming/rails/feedcatcher/app/views/feed/index.html.erb:4: syntax error, unexpected ')', expecting kEND +@output_buffer.concat " <p>Set feed "; @output_buffer.concat(( form.text_field :feed_name, :size => 20) ).to_s); @output_buffer.concat "\n" + ^ +Function body: def _run_erb_app47views47feed47index46html46erb(local_assigns) + old_output_buffer = output_buffer;;@output_buffer = ''; __in_erb_template=true ; @output_buffer.concat "<h1>Feeds available</h1>\n" +@output_buffer.concat "\n" + form_for :feed_item, :url => update_url do |form| ; @output_buffer.concat "\n" +@output_buffer.concat " <p>Set feed "; @output_buffer.concat(( form.text_field :feed_name, :size => 20) ).to_s); @output_buffer.concat "\n" +@output_buffer.concat " to include "; @output_buffer.concat(( form.text_field :title, :size => 30 ).to_s); @output_buffer.concat "\n" +@output_buffer.concat " containing "; @output_buffer.concat(( form.text_field :description, :size => 50 ).to_s); @output_buffer.concat "\n" +@output_buffer.concat " "; submit_tag ; @output_buffer.concat "</p>\n" + end ; @output_buffer.concat "\n" +@output_buffer.concat "\n" +@output_buffer.concat "<ul>\n" + for feed in @feeds ; @output_buffer.concat "\n" +@output_buffer.concat " <li>"; @output_buffer.concat(( link_to(h(feed.feed_name), (feed_url(:feed_name => feed.feed_name))) ).to_s); @output_buffer.concat "</li>\n" + end ; @output_buffer.concat "\n" +@output_buffer.concat "</ul>"; @output_buffer + ensure + self.output_buffer = old_output_buffer + end +Backtrace: /home/neil/programming/rails/feedcatcher/app/views/feed/index.html.erb:17:in `compile!' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_view/renderable.rb:61:in `compile' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_view/renderable.rb:28:in `render' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_view/template.rb:194:in `render_template' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_view/base.rb:260:in `render' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:1241:in `render_for_file' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:937:in `render_without_benchmark' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb:51:in `render' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:in `ms' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:10:in `realtime' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:in `ms' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb:51:in `render' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:1317:in `default_render' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:1323:in `perform_action_without_filters' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/filters.rb:617:in `call_filters' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/filters.rb:610:in `perform_action_without_benchmark' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:in `ms' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:10:in `realtime' +/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:in `ms' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/rescue.rb:160:in `perform_action_without_flash' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/flash.rb:141:in `perform_action' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:523:in `send' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:523:in `process_without_filters' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/filters.rb:606:in `process' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:391:in `process' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/base.rb:386:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/routing/route_set.rb:433:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:88:in `dispatch' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:111:in `_call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:82:in `initialize' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:29:in `call' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:29:in `call' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:9:in `cache' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/query_cache.rb:28:in `call' +/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/head.rb:9:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/methodoverride.rb:24:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/params_parser.rb:15:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/rewindable_input.rb:25:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/session/cookie_store.rb:93:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/reloader.rb:9:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/failsafe.rb:11:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/lock.rb:11:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/lock.rb:11:in `synchronize' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/lock.rb:11:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/dispatcher.rb:106:in `call' +/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/static.rb:31:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/urlmap.rb:46:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/urlmap.rb:40:in `each' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/urlmap.rb:40:in `call' +/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/rails/rack/log_tailer.rb:17:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/content_length.rb:13:in `call' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/handler/webrick.rb:46:in `service' +/usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' +/usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' +/usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' +/usr/lib/ruby/1.8/webrick/server.rb:162:in `start' +/usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' +/usr/lib/ruby/1.8/webrick/server.rb:95:in `start' +/usr/lib/ruby/1.8/webrick/server.rb:92:in `each' +/usr/lib/ruby/1.8/webrick/server.rb:92:in `start' +/usr/lib/ruby/1.8/webrick/server.rb:23:in `start' +/usr/lib/ruby/1.8/webrick/server.rb:82:in `start' +/usr/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/handler/webrick.rb:13:in `run' +/usr/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/commands/server.rb:111 +/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' +/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' +script/server:3 + +ActionView::TemplateError (compile error +/home/neil/programming/rails/feedcatcher/app/views/feed/index.html.erb:4: syntax error, unexpected ')', expecting kEND +@output_buffer.concat " <p>Set feed "; @output_buffer.concat(( form.text_field :feed_name, :size => 20) ).to_s); @output_buffer.concat "\n" + ^) on line #4 of app/views/feed/index.html.erb: +1: <h1>Feeds available</h1> +2: +3: <% form_for :feed_item, :url => update_url do |form| %> +4: <p>Set feed <%= form.text_field :feed_name, :size => 20) %> +5: to include <%= form.text_field :title, :size => 30 %> +6: containing <%= form.text_field :description, :size => 50 %> +7: <% submit_tag %></p> + + app/views/feed/index.html.erb:17:in `compile!' + /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' + /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' + /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' + /usr/lib/ruby/1.8/webrick/server.rb:162:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' + /usr/lib/ruby/1.8/webrick/server.rb:95:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:92:in `each' + /usr/lib/ruby/1.8/webrick/server.rb:92:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:23:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:82:in `start' + +Rendered rescues/_trace (189.7ms) +Rendered rescues/_request_and_response (1.0ms) +Rendering rescues/layout (internal_server_error) + [4;36;1mSQL (0.2ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (1.0ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#index (for 127.0.0.1 at 2009-07-17 14:57:32) [GET] + [4;36;1mFeedItem Load (0.2ms)[0m [0;1mSELECT DISTINCT feed_name FROM `feed_items` [0m +Rendering feed/index + +ActionView::TemplateError (update_url failed to generate from {:action=>"update", :controller=>"feed"} - you may have ambiguous routes, or you may need to supply additional parameters for this route. content_url has the following required parameters: [:feed_name] - are they all satisfied?) on line #3 of app/views/feed/index.html.erb: +1: <h1>Feeds available</h1> +2: +3: <% form_for :feed_item, :url => update_url do |form| %> +4: <p>Set feed <%= form.text_field :feed_name, :size => 20 %> +5: to include <%= form.text_field :title, :size => 30 %> +6: containing <%= form.text_field :description, :size => 50 %> + + (eval):20:in `update_url' + app/views/feed/index.html.erb:3 + /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' + /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' + /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' + /usr/lib/ruby/1.8/webrick/server.rb:162:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' + /usr/lib/ruby/1.8/webrick/server.rb:95:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:92:in `each' + /usr/lib/ruby/1.8/webrick/server.rb:92:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:23:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:82:in `start' + +Rendered rescues/_trace (111.7ms) +Rendered rescues/_request_and_response (0.6ms) +Rendering rescues/layout (internal_server_error) + [4;35;1mSQL (0.1ms)[0m [0mSET NAMES 'utf8'[0m + [4;36;1mSQL (0.1ms)[0m [0;1mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#show (for 127.0.0.1 at 2009-07-17 14:58:15) [GET] + Parameters: {"feed_name"=>"feed-h"} + [4;35;1mFeedItem Columns (1.3ms)[0m [0mSHOW FIELDS FROM `feed_items`[0m + [4;36;1mFeedItem Load (0.2ms)[0m [0;1mSELECT * FROM `feed_items` WHERE (`feed_items`.`feed_name` = 'feed-h') [0m +Rendering feed/show +Completed in 30ms (View: 12, DB: 2) | 200 OK [http://localhost/feed-h] + [4;35;1mSQL (0.1ms)[0m [0mSET NAMES 'utf8'[0m + [4;36;1mSQL (0.1ms)[0m [0;1mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#index (for 127.0.0.1 at 2009-07-17 14:58:19) [GET] + [4;35;1mFeedItem Load (0.2ms)[0m [0mSELECT DISTINCT feed_name FROM `feed_items` [0m +Rendering feed/index + +ActionView::TemplateError (update_url failed to generate from {:action=>"update", :controller=>"feed"} - you may have ambiguous routes, or you may need to supply additional parameters for this route. content_url has the following required parameters: [:feed_name] - are they all satisfied?) on line #3 of app/views/feed/index.html.erb: +1: <h1>Feeds available</h1> +2: +3: <% form_for :feed_item, :url => update_url do |form| %> +4: <p>Set feed <%= form.text_field :feed_name, :size => 20 %> +5: to include <%= form.text_field :title, :size => 30 %> +6: containing <%= form.text_field :description, :size => 50 %> + + (eval):20:in `update_url' + app/views/feed/index.html.erb:3 + /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' + /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' + /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' + /usr/lib/ruby/1.8/webrick/server.rb:162:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' + /usr/lib/ruby/1.8/webrick/server.rb:95:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:92:in `each' + /usr/lib/ruby/1.8/webrick/server.rb:92:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:23:in `start' + /usr/lib/ruby/1.8/webrick/server.rb:82:in `start' + +Rendered rescues/_trace (113.9ms) +Rendered rescues/_request_and_response (0.5ms) +Rendering rescues/layout (internal_server_error) + [4;36;1mSQL (0.2ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.2ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#index (for 127.0.0.1 at 2009-07-17 15:02:49) [GET] + [4;36;1mFeedItem Load (0.2ms)[0m [0;1mSELECT DISTINCT feed_name FROM `feed_items` [0m +Rendering feed/index + [4;35;1mFeedItem Columns (1.7ms)[0m [0mSHOW FIELDS FROM `feed_items`[0m +Completed in 38ms (View: 16, DB: 2) | 200 OK [http://localhost/index] + [4;36;1mSQL (0.2ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.2ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#show (for 127.0.0.1 at 2009-07-17 15:03:07) [GET] + Parameters: {"feed_name"=>"feed-a"} + [4;36;1mFeedItem Columns (1.0ms)[0m [0;1mSHOW FIELDS FROM `feed_items`[0m + [4;35;1mFeedItem Load (0.3ms)[0m [0mSELECT * FROM `feed_items` WHERE (`feed_items`.`feed_name` = 'feed-a') [0m +Rendering feed/show +Completed in 115ms (View: 96, DB: 2) | 200 OK [http://localhost/feed-a] + [4;36;1mSQL (0.1ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.2ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#show (for 127.0.0.1 at 2009-07-17 15:03:43) [GET] + Parameters: {"feed_name"=>"feed-a"} + [4;36;1mFeedItem Columns (1.1ms)[0m [0;1mSHOW FIELDS FROM `feed_items`[0m + [4;35;1mFeedItem Load (0.2ms)[0m [0mSELECT * FROM `feed_items` WHERE (`feed_items`.`feed_name` = 'feed-a') [0m +Rendering feed/show +Completed in 32ms (View: 13, DB: 2) | 200 OK [http://localhost/feed-a] + [4;36;1mSQL (0.1ms)[0m [0;1mSET NAMES 'utf8'[0m + [4;35;1mSQL (0.1ms)[0m [0mSET SQL_AUTO_IS_NULL=0[0m + + +Processing FeedController#index (for 127.0.0.1 at 2009-07-17 15:03:46) [GET] + [4;36;1mFeedItem Load (0.2ms)[0m [0;1mSELECT DISTINCT feed_name FROM `feed_items` [0m +Rendering feed/index + [4;35;1mFeedItem Columns (2.1ms)[0m [0mSHOW FIELDS FROM `feed_items`[0m +Completed in 33ms (View: 17, DB: 2) | 200 OK [http://localhost/index] diff --git a/public/index.html b/public/index.html deleted file mode 100644 index 0dd5189..0000000 --- a/public/index.html +++ /dev/null @@ -1,275 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html> - <head> - <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> - <title>Ruby on Rails: Welcome aboard</title> - <style type="text/css" media="screen"> - body { - margin: 0; - margin-bottom: 25px; - padding: 0; - background-color: #f0f0f0; - font-family: "Lucida Grande", "Bitstream Vera Sans", "Verdana"; - font-size: 13px; - color: #333; - } - - h1 { - font-size: 28px; - color: #000; - } - - a {color: #03c} - a:hover { - background-color: #03c; - color: white; - text-decoration: none; - } - - - #page { - background-color: #f0f0f0; - width: 750px; - margin: 0; - margin-left: auto; - margin-right: auto; - } - - #content { - float: left; - background-color: white; - border: 3px solid #aaa; - border-top: none; - padding: 25px; - width: 500px; - } - - #sidebar { - float: right; - width: 175px; - } - - #footer { - clear: both; - } - - - #header, #about, #getting-started { - padding-left: 75px; - padding-right: 30px; - } - - - #header { - background-image: url("images/rails.png"); - background-repeat: no-repeat; - background-position: top left; - height: 64px; - } - #header h1, #header h2 {margin: 0} - #header h2 { - color: #888; - font-weight: normal; - font-size: 16px; - } - - - #about h3 { - margin: 0; - margin-bottom: 10px; - font-size: 14px; - } - - #about-content { - background-color: #ffd; - border: 1px solid #fc0; - margin-left: -11px; - } - #about-content table { - margin-top: 10px; - margin-bottom: 10px; - font-size: 11px; - border-collapse: collapse; - } - #about-content td { - padding: 10px; - padding-top: 3px; - padding-bottom: 3px; - } - #about-content td.name {color: #555} - #about-content td.value {color: #000} - - #about-content.failure { - background-color: #fcc; - border: 1px solid #f00; - } - #about-content.failure p { - margin: 0; - padding: 10px; - } - - - #getting-started { - border-top: 1px solid #ccc; - margin-top: 25px; - padding-top: 15px; - } - #getting-started h1 { - margin: 0; - font-size: 20px; - } - #getting-started h2 { - margin: 0; - font-size: 14px; - font-weight: normal; - color: #333; - margin-bottom: 25px; - } - #getting-started ol { - margin-left: 0; - padding-left: 0; - } - #getting-started li { - font-size: 18px; - color: #888; - margin-bottom: 25px; - } - #getting-started li h2 { - margin: 0; - font-weight: normal; - font-size: 18px; - color: #333; - } - #getting-started li p { - color: #555; - font-size: 13px; - } - - - #search { - margin: 0; - padding-top: 10px; - padding-bottom: 10px; - font-size: 11px; - } - #search input { - font-size: 11px; - margin: 2px; - } - #search-text {width: 170px} - - - #sidebar ul { - margin-left: 0; - padding-left: 0; - } - #sidebar ul h3 { - margin-top: 25px; - font-size: 16px; - padding-bottom: 10px; - border-bottom: 1px solid #ccc; - } - #sidebar li { - list-style-type: none; - } - #sidebar ul.links li { - margin-bottom: 5px; - } - - </style> - <script type="text/javascript" src="javascripts/prototype.js"></script> - <script type="text/javascript" src="javascripts/effects.js"></script> - <script type="text/javascript"> - function about() { - if (Element.empty('about-content')) { - new Ajax.Updater('about-content', 'rails/info/properties', { - method: 'get', - onFailure: function() {Element.classNames('about-content').add('failure')}, - onComplete: function() {new Effect.BlindDown('about-content', {duration: 0.25})} - }); - } else { - new Effect[Element.visible('about-content') ? - 'BlindUp' : 'BlindDown']('about-content', {duration: 0.25}); - } - } - - window.onload = function() { - $('search-text').value = ''; - $('search').onsubmit = function() { - $('search-text').value = 'site:rubyonrails.org ' + $F('search-text'); - } - } - </script> - </head> - <body> - <div id="page"> - <div id="sidebar"> - <ul id="sidebar-items"> - <li> - <form id="search" action="http://www.google.com/search" method="get"> - <input type="hidden" name="hl" value="en" /> - <input type="text" id="search-text" name="q" value="site:rubyonrails.org " /> - <input type="submit" value="Search" /> the Rails site - </form> - </li> - - <li> - <h3>Join the community</h3> - <ul class="links"> - <li><a href="http://www.rubyonrails.org/">Ruby on Rails</a></li> - <li><a href="http://weblog.rubyonrails.org/">Official weblog</a></li> - <li><a href="http://wiki.rubyonrails.org/">Wiki</a></li> - </ul> - </li> - - <li> - <h3>Browse the documentation</h3> - <ul class="links"> - <li><a href="http://api.rubyonrails.org/">Rails API</a></li> - <li><a href="http://stdlib.rubyonrails.org/">Ruby standard library</a></li> - <li><a href="http://corelib.rubyonrails.org/">Ruby core</a></li> - <li><a href="http://guides.rubyonrails.org/">Rails Guides</a></li> - </ul> - </li> - </ul> - </div> - - <div id="content"> - <div id="header"> - <h1>Welcome aboard</h1> - <h2>You’re riding Ruby on Rails!</h2> - </div> - - <div id="about"> - <h3><a href="rails/info/properties" onclick="about(); return false">About your application’s environment</a></h3> - <div id="about-content" style="display: none"></div> - </div> - - <div id="getting-started"> - <h1>Getting started</h1> - <h2>Here’s how to get rolling:</h2> - - <ol> - <li> - <h2>Use <tt>script/generate</tt> to create your models and controllers</h2> - <p>To see all available options, run it without parameters.</p> - </li> - - <li> - <h2>Set up a default route and remove or rename this file</h2> - <p>Routes are set up in config/routes.rb.</p> - </li> - - <li> - <h2>Create your database</h2> - <p>Run <tt>rake db:migrate</tt> to create your database. If you're not using SQLite (the default), edit <tt>config/database.yml</tt> with your username and password.</p> - </li> - </ol> - </div> - </div> - - <div id="footer"> </div> - </div> - </body> -</html> \ No newline at end of file