From 3ce5d102e909dc077a6c9a046a32863c44db498c Mon Sep 17 00:00:00 2001 From: andrew Date: Sun, 13 Apr 2008 08:16:26 +0000 Subject: [PATCH] nested routes and to_param for pages git-svn-id: http://svn.barleysodas.com/barleysodas/trunk@154 0f7b21a7-9e3a-4941-bbeb-ce5c7c368fa7 --- app/controllers/beers_controller.rb | 8 ++++---- app/controllers/breweries_controller.rb | 6 +++--- app/controllers/friends_controller.rb | 4 ++-- app/controllers/pages_controller.rb | 6 +++--- app/controllers/peoples_controller.rb | 6 +++--- app/controllers/styles_controller.rb | 4 ++-- app/helpers/application_helper.rb | 6 +++--- app/helpers/beers_helper.rb | 6 +++--- app/helpers/breweries_helper.rb | 4 ++-- app/helpers/discussions_helper.rb | 11 ++++++++--- app/helpers/pages_helper.rb | 5 ++--- app/helpers/peoples_helper.rb | 10 ++++------ app/helpers/styles_helper.rb | 5 ++--- app/models/beer.rb | 1 + app/models/brewery.rb | 1 + app/models/page.rb | 8 +------- app/models/people.rb | 3 ++- app/views/beers/_beers.rxml | 4 ++-- app/views/beers/edit.rhtml | 2 +- app/views/beers/index.rhtml | 4 ++-- app/views/beers/new.rhtml | 2 +- app/views/beers/show.rhtml | 2 +- app/views/breweries/_breweries.rxml | 4 ++-- app/views/breweries/edit.rhtml | 4 ++-- app/views/breweries/show.rhtml | 2 +- app/views/experiences/_experiences.rxml | 6 +++--- app/views/friends/show.rhtml | 2 +- app/views/layouts/application.rhtml | 14 +++++++------- app/views/pages/_page.rhtml | 2 +- app/views/pages/_pages.rxml | 4 ++-- app/views/pages/edit.rhtml | 2 +- app/views/peoples/_peoples.rxml | 4 ++-- app/views/peoples/edit.rhtml | 2 +- app/views/peoples/show.rhtml | 4 ++-- app/views/styles/edit.rhtml | 2 +- app/views/styles/index.rhtml | 2 +- app/views/styles/show.rhtml | 2 +- config/environment.rb | 1 - config/environments/development.rb | 3 --- config/routes.rb | 10 ++++++---- lib/wordy_parameter.rb | 10 ++++++++++ 41 files changed, 97 insertions(+), 91 deletions(-) create mode 100644 lib/wordy_parameter.rb diff --git a/app/controllers/beers_controller.rb b/app/controllers/beers_controller.rb index 2243d80..a218b20 100644 --- a/app/controllers/beers_controller.rb +++ b/app/controllers/beers_controller.rb @@ -59,9 +59,9 @@ class BeersController < ApplicationController respond_to do |format| if @beer.save flash[:notice] = 'Beer was successfully created.' - format.html { redirect_to beer_url(@beer.page.title_for_url) } + format.html { redirect_to brewery_beer_path(brewery, @beer) } format.xml { head :created, - :location => beer_url(@beer.page.title_for_url) } + :location => brewery_beer_path(brewery, @beer) } else format.html { render :action => "new" } format.xml { render :xml => @beer.errors.to_xml } @@ -80,7 +80,7 @@ class BeersController < ApplicationController respond_to do |format| if @beer.save flash[:notice] = 'Beer was successfully updated.' - format.html { redirect_to beer_url(@beer.page.title_for_url) } + format.html { redirect_to brewery_beer_url(@beer.brewery, @beer) } format.xml { head :ok } else format.html { render :action => "edit" } @@ -94,7 +94,7 @@ class BeersController < ApplicationController def destroy @beer.destroy respond_to do |format| - format.html { redirect_to beers_url } + format.html { redirect_to :action => :index } format.xml { head :ok } end end diff --git a/app/controllers/breweries_controller.rb b/app/controllers/breweries_controller.rb index bcc96b7..3f12f33 100644 --- a/app/controllers/breweries_controller.rb +++ b/app/controllers/breweries_controller.rb @@ -53,9 +53,9 @@ class BreweriesController < ApplicationController respond_to do |format| if @brewery.save flash[:notice] = 'Brewery was successfully created.' - format.html { redirect_to brewery_url(@brewery.page.title_for_url) } + format.html { redirect_to brewery_url(@brewery) } format.xml { head :created, - :location => brewery_url(@brewery.page.title_for_url) } + :location => brewery_url(@brewery) } else format.html { render :action => "new" } format.xml { render :xml => @brewery.errors.to_xml } @@ -71,7 +71,7 @@ class BreweriesController < ApplicationController respond_to do |format| if @brewery.save flash[:notice] = 'Brewery was successfully updated.' - format.html { redirect_to brewery_url(@brewery.page.title_for_url) } + format.html { redirect_to brewery_url(@brewery) } format.xml { head :ok } else format.html { render :action => "edit" } diff --git a/app/controllers/friends_controller.rb b/app/controllers/friends_controller.rb index 7bb6158..24d841d 100644 --- a/app/controllers/friends_controller.rb +++ b/app/controllers/friends_controller.rb @@ -21,7 +21,7 @@ class FriendsController < ApplicationController respond_to do |format| if @friend.save flash[:notice] = 'Successfully added the new friend' - format.html { redirect_to people_path(@dest.page.title_for_url) } + format.html { redirect_to people_path(@dest) } else format.html { render :action => "new" } end @@ -37,7 +37,7 @@ class FriendsController < ApplicationController @friend.destroy if @friend respond_to do |format| flash[:notice] = 'Removed the friend' - format.html { redirect_to people_path(@people.page.title_for_url) } + format.html { redirect_to people_path(@people) } end end diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index 24e2e4d..1ec6f07 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -53,9 +53,9 @@ class PagesController < ApplicationController respond_to do |format| if @page.save flash[:notice] = 'Page was successfully created.' - format.html { redirect_to page_url({ :id => @page.title_for_url }) } + format.html { redirect_to page_url(@page) } format.xml { head :created, - :location => page_url({ :id => @page.title_for_url }) } + :location => page_url(@page) } else format.html { render :action => "new" } format.xml { render :xml => @page.errors.to_xml } @@ -74,7 +74,7 @@ class PagesController < ApplicationController if @page.title == 'HomePage' redirect_to pages_url else - redirect_to page_url({ :id => @page.title_for_url }) + redirect_to page_url(@page) end } format.xml { head :ok } diff --git a/app/controllers/peoples_controller.rb b/app/controllers/peoples_controller.rb index 9c30ad4..989b64e 100644 --- a/app/controllers/peoples_controller.rb +++ b/app/controllers/peoples_controller.rb @@ -55,9 +55,9 @@ class PeoplesController < ApplicationController if invitation and @people.save invitation.destroy flash[:notice] = 'People was successfully created.' - format.html { redirect_to people_url(@people.page.title_for_url) } + format.html { redirect_to people_url(@people) } format.xml { head :created, - :location => people_url(@people.page.title_for_url) } + :location => people_url(@people) } else format.html { render :action => "new" } format.xml { render :xml => @people.errors.to_xml } @@ -74,7 +74,7 @@ class PeoplesController < ApplicationController respond_to do |format| if @people.update_attributes(params[:people]) flash[:notice] = 'People was successfully updated.' - format.html { redirect_to people_url(@people.page.title_for_url) } + format.html { redirect_to people_url(@people) } format.xml { head :ok } else format.html { render :action => "edit" } diff --git a/app/controllers/styles_controller.rb b/app/controllers/styles_controller.rb index 09ed760..dc6725e 100644 --- a/app/controllers/styles_controller.rb +++ b/app/controllers/styles_controller.rb @@ -45,7 +45,7 @@ class StylesController < ApplicationController respond_to do |format| if @style.save flash[:notice] = 'Style was successfully created.' - format.html { redirect_to style_url(@style.page.title_for_url) } + format.html { redirect_to style_url(@style) } format.xml { head :created, :location => style_url(@style) } else format.html { render :action => "new" } @@ -64,7 +64,7 @@ class StylesController < ApplicationController respond_to do |format| if @style.save flash[:notice] = 'Style was successfully updated.' - format.html { redirect_to style_url(@style.page.title_for_url) } + format.html { redirect_to style_url(@style) } format.xml { head :ok } else format.html { render :action => "edit" } diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index ae147e4..fcedefa 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -11,7 +11,7 @@ module ApplicationHelper # def content_title return h(@content_title) if @content_title - controller.class.to_s.gsub(/Controller/, '') + controller.controller_name.camelcase end ## @@ -27,7 +27,7 @@ module ApplicationHelper # Returns a link for a Page model. # def link_to_page(page) - link_to h(page.title), page_path({ :id => page.title_for_url }) + link_to h(page.title), page_path(page) end ## @@ -36,7 +36,7 @@ module ApplicationHelper def allow_page_discussions @page.allow_discussions = true end - + ## # Helper to check if Discussion is allowed. This should check the underlying # permissions first instead of looking in the model. diff --git a/app/helpers/beers_helper.rb b/app/helpers/beers_helper.rb index 4dc4b11..1eb2876 100644 --- a/app/helpers/beers_helper.rb +++ b/app/helpers/beers_helper.rb @@ -2,16 +2,16 @@ module BeersHelper include BreweriesHelper def new_beer_link - link_to 'New Beer', new_beer_path, { :title => 'Create a new beer' } + link_to 'New Beer', new_brewery_beer_url, { :title => 'Create a new beer' } end def show_beer_link(beer) - link_to beer.title, beer_path(beer.page.title_for_url), + link_to beer.title, brewery_beer_path(beer.brewery, beer), { :title => beer.title } end def edit_beer_link(beer) - link_to 'Edit Beer', edit_beer_path(beer.page.title_for_url), + link_to 'Edit Beer', edit_brewery_beer_path(beer.brewery, beer), { :title => "Edit #{beer.title}" } end diff --git a/app/helpers/breweries_helper.rb b/app/helpers/breweries_helper.rb index 2e591a5..37a342b 100644 --- a/app/helpers/breweries_helper.rb +++ b/app/helpers/breweries_helper.rb @@ -5,12 +5,12 @@ module BreweriesHelper end def show_brewery_link(brewery) - link_to brewery.title, brewery_path(brewery.page.title_for_url), + link_to brewery.title, brewery_path(brewery), { :title => brewery.title } end def edit_brewery_link(brewery) - link_to 'Edit Brewery', edit_brewery_path(brewery.page.title_for_url), + link_to 'Edit Brewery', edit_brewery_path(brewery), { :title => "Edit #{brewery.title}" } end end diff --git a/app/helpers/discussions_helper.rb b/app/helpers/discussions_helper.rb index 5e9703d..b964687 100644 --- a/app/helpers/discussions_helper.rb +++ b/app/helpers/discussions_helper.rb @@ -4,9 +4,14 @@ module DiscussionsHelper # def page_or_parent_link(page) if page.owner_type.to_s.empty? - return link_to('Show Wiki Page', page_path(page.title_for_url)) + return link_to('Show Wiki Page', page_path(page)) + end + if page.owner_type == 'Beer' + link_to "Show Beer Page", + brewery_beer_path(page.owner.brewery, page.owner) + else + link_to("Show #{page.owner_type} Page", + send("#{page.owner_type.downcase}_path", page)) end - link_to("Show #{page.owner_type} Page", - send("#{page.owner_type.downcase}_path", page.title_for_url)) end end diff --git a/app/helpers/pages_helper.rb b/app/helpers/pages_helper.rb index e8bc0c6..930c9a8 100644 --- a/app/helpers/pages_helper.rb +++ b/app/helpers/pages_helper.rb @@ -4,12 +4,11 @@ module PagesHelper end def show_page_link(page, better_title = 'Show') - link_to better_title, page_path(page.title_for_url), - { :title => page.title } + link_to better_title, page_path(page), { :title => page.title } end def edit_page_link(page) - link_to 'Edit Page', edit_page_path(page.title_for_url), + link_to 'Edit Page', edit_page_path(page), { :title => "Edit #{page.title}" } end end diff --git a/app/helpers/peoples_helper.rb b/app/helpers/peoples_helper.rb index dfcf705..162dca7 100644 --- a/app/helpers/peoples_helper.rb +++ b/app/helpers/peoples_helper.rb @@ -4,18 +4,17 @@ module PeoplesHelper end def show_people_link(people) - link_to people.title, people_path(people.page.title_for_url), - { :title => people.title } + link_to people.title, people_path(people), { :title => people.title } end def edit_people_link(people) - link_to 'Edit People', edit_people_path(people.page.title_for_url), + link_to 'Edit People', edit_people_path(people), { :title => "Edit #{people.title}" } end def show_friends_link(people) link_to "#{people.title}'s Friends (#{people.actual_friends.size})", - friend_path(people.page.title_for_url) + friend_path(people) end def add_friend_link(people) @@ -26,7 +25,6 @@ module PeoplesHelper def remove_friend_link(people) link_to "#{image_tag('list-remove.png')} Friend", - friend_url(:id => people.page.title_for_url, :d => session[:people_id]), - :method => :delete + friend_url(people, :d => session[:people_id]), :method => :delete end end diff --git a/app/helpers/styles_helper.rb b/app/helpers/styles_helper.rb index 0c75adf..0e0f56c 100644 --- a/app/helpers/styles_helper.rb +++ b/app/helpers/styles_helper.rb @@ -4,12 +4,11 @@ module StylesHelper end def show_style_link(style) - link_to style.title, style_path(style.page.title_for_url), - { :title => style.title } + link_to style.title, style_path(style), { :title => style.title } end def edit_style_link(style) - link_to 'Edit Style', edit_style_path(style.page.title_for_url), + link_to 'Edit Style', edit_style_path(style), { :title => "Edit #{style.title}" } end end diff --git a/app/models/beer.rb b/app/models/beer.rb index 46df8c6..fbe4105 100644 --- a/app/models/beer.rb +++ b/app/models/beer.rb @@ -2,6 +2,7 @@ # This model will represent a beverage produced by a Brewery. # class Beer < ActiveRecord::Base + include WordyParameter belongs_to :brewery has_one_tuxwiki_page :owner_class => 'Beer' belongs_to :style diff --git a/app/models/brewery.rb b/app/models/brewery.rb index 013d11f..fb2cdf1 100644 --- a/app/models/brewery.rb +++ b/app/models/brewery.rb @@ -2,6 +2,7 @@ # This model represents a company that produces Beer. # class Brewery < ActiveRecord::Base + include WordyParameter has_many :beers has_one_tuxwiki_page :owner_class => 'Brewery' has_many_tagged_images diff --git a/app/models/page.rb b/app/models/page.rb index 91936d8..a643975 100644 --- a/app/models/page.rb +++ b/app/models/page.rb @@ -11,6 +11,7 @@ # * Uses [[ and ]] for WikiWord representation. # class Page < ActiveRecord::Base + include WordyParameter acts_as_versioned acts_as_taggable @@ -32,13 +33,6 @@ class Page < ActiveRecord::Base attr_protected :allow_discussions, :created_by, :updated_by - ## - # Returns an url-friendly title for making links. - # - def title_for_url - self.title.gsub(/ /, '_') - end - ## # Gets a title from an url name. # diff --git a/app/models/people.rb b/app/models/people.rb index 1cbe18d..b240db4 100644 --- a/app/models/people.rb +++ b/app/models/people.rb @@ -28,7 +28,8 @@ class People < ActiveRecord::Base # Friend of this instance. # def friend_of?(people_id) - Friend.count([ 'source_id = ? AND destination_id = ?', people_id, id ]) > 0 + Friend.count(:conditions => [ 'source_id = ? AND destination_id = ?', + people_id, id ]) > 0 end ## diff --git a/app/views/beers/_beers.rxml b/app/views/beers/_beers.rxml index 21b2c4b..12f8bbf 100644 --- a/app/views/beers/_beers.rxml +++ b/app/views/beers/_beers.rxml @@ -12,8 +12,8 @@ xml.rss(:version=>"2.0"){ xml.description(beer.brewery.title) xml.author(beer.page.created_by.title) xml.pubDate(beer.created_at.strftime("%a, %d %b %Y %H:%M:%S %z")) - xml.link(beer_url(beer.page.title_for_url)) - xml.guid(beer_url(beer.page.title_for_url)) + xml.link(brewery_beer_url(beer.brewery, beer)) + xml.guid(brewery_beer_url(beer.brewery, beer)) end end } diff --git a/app/views/beers/edit.rhtml b/app/views/beers/edit.rhtml index f2deb88..8c01075 100644 --- a/app/views/beers/edit.rhtml +++ b/app/views/beers/edit.rhtml @@ -1,6 +1,6 @@ <%= error_messages_for :beer %> -<% form_for(:beer, :url => beer_path(@beer.page.title_for_url), :html => { :method => :put }) do |f| %> +<% form_for(:beer, :url => brewery_beer_path(@beer.brewery, @beer), :html => { :method => :put }) do |f| %> <%= render :partial => 'beer_form' %>

<%= submit_tag "Update" %> diff --git a/app/views/beers/index.rhtml b/app/views/beers/index.rhtml index dbb90f5..87fe379 100644 --- a/app/views/beers/index.rhtml +++ b/app/views/beers/index.rhtml @@ -8,10 +8,10 @@ <%= render :partial => 'shared/pagination_links' %> <% content_for :sidebar do -%> - <%= link_to "New Beer", new_beer_path, { :title => 'Create a new beer' } -%>
+ <%= link_to "New Beer", { :action => :new }, { :title => 'Create a new beer' } -%>
<%= render :partial => 'shared/tag_cloud' %> <% end -%> <% content_for :auto_discoveries do -%> <%= auto_discovery_link_tag :rss, { :format => :rss } %> -<% end -%> \ No newline at end of file +<% end -%> diff --git a/app/views/beers/new.rhtml b/app/views/beers/new.rhtml index 035c84e..a13f499 100644 --- a/app/views/beers/new.rhtml +++ b/app/views/beers/new.rhtml @@ -1,6 +1,6 @@ <%= error_messages_for :beer %> -<% form_for(:beer, :url => beers_path, :html => { :method => :post }) do |f| %> +<% form_for(:beer, brewery_beers_path(:brewery_id => nil), :html => { :method => :post }) do |f| %> <%= render :partial => 'beer_form' %>

<%= submit_tag "Create" %> diff --git a/app/views/beers/show.rhtml b/app/views/beers/show.rhtml index b0a525c..cc62604 100644 --- a/app/views/beers/show.rhtml +++ b/app/views/beers/show.rhtml @@ -33,7 +33,7 @@ after_opens['experienceDialog'] = function(){ <% content_for :sidebar do -%> <%= new_beer_link -%>
<%= edit_beer_link(@beer) -%>
- <%= link_to 'Destroy', beer_path(@beer.page.title_for_url), :confirm => 'Are you sure?', :method => :delete %>
+ <%= link_to 'Destroy', brewery_beer_path(@beer.brewery, @beer), :confirm => 'Are you sure?', :method => :delete %>
<% unless @beer.tagged_images.empty? -%><%= tagged_image_browser_link(@beer) -%>
<% end %> <% if @experience -%><%= remove_experience_link(@experience) -%><% else -%><%= add_experience_link -%><% end %>
<%= pluralize(@beer.people.size, 'people') -%> have experienced this beer.
diff --git a/app/views/breweries/_breweries.rxml b/app/views/breweries/_breweries.rxml index e2e52a3..6d62e24 100644 --- a/app/views/breweries/_breweries.rxml +++ b/app/views/breweries/_breweries.rxml @@ -12,8 +12,8 @@ xml.rss(:version=>"2.0"){ xml.description(brewery.homepage) xml.author(brewery.page.created_by.title) xml.pubDate(brewery.created_at.strftime("%a, %d %b %Y %H:%M:%S %z")) - xml.link(brewery_url(brewery.page.title_for_url)) - xml.guid(brewery_url(brewery.page.title_for_url)) + xml.link(brewery_url(brewery)) + xml.guid(brewery_url(brewery)) end end } diff --git a/app/views/breweries/edit.rhtml b/app/views/breweries/edit.rhtml index 8b01cea..a62b186 100644 --- a/app/views/breweries/edit.rhtml +++ b/app/views/breweries/edit.rhtml @@ -1,6 +1,6 @@ <%= error_messages_for :brewery %> -<% form_for(:brewery, :url => brewery_path(@brewery.page.title_for_url), :html => { :method => :put }) do |f| %> +<% form_for(:brewery, :url => brewery_path(@brewery), :html => { :method => :put }) do |f| %> <%= render :partial => 'brewery_form' %>

<%= submit_tag "Update" %> @@ -9,5 +9,5 @@ <% content_for :sidebar do -%> <%= link_to 'New Brewery', new_brewery_path -%>
- <%= link_to 'Show', brewery_path(@brewery.page.title_for_url) -%>
+ <%= link_to 'Show', brewery_path(@brewery) -%>
<% end -%> diff --git a/app/views/breweries/show.rhtml b/app/views/breweries/show.rhtml index 2ff5136..89c69ea 100644 --- a/app/views/breweries/show.rhtml +++ b/app/views/breweries/show.rhtml @@ -5,6 +5,6 @@ <% content_for :sidebar do -%> <%= new_brewery_link -%>
<%= edit_brewery_link(@brewery) -%>
- <%= link_to 'Destroy', brewery_path(@brewery.page.title_for_url), :confirm => 'Are you sure?', :method => :delete %>
+ <%= link_to 'Destroy', brewery_path(@brewery), :confirm => 'Are you sure?', :method => :delete %>
<% unless @brewery.tagged_images.empty? -%><%= tagged_image_browser_link -%>
<% end -%> <% end -%> diff --git a/app/views/experiences/_experiences.rxml b/app/views/experiences/_experiences.rxml index af78ca6..9463335 100644 --- a/app/views/experiences/_experiences.rxml +++ b/app/views/experiences/_experiences.rxml @@ -2,7 +2,7 @@ xml.instruct! :xml, :version=>"1.0" xml.rss(:version=>"2.0"){ xml.channel{ xml.title("#{@people.title}'s Newest Beers") - xml.link(experience_url(@people.page.title_for_url)) + xml.link(experience_url(@people)) xml.description("Most recently added beers.") xml.language('en-us') xml.lastBuildDate((@experiences.first.created_at.strftime("%a, %d %b %Y %H:%M:%S %z") rescue nil)) @@ -12,8 +12,8 @@ xml.rss(:version=>"2.0"){ xml.description(experience.beer.brewery.title) xml.author(experience.beer.page.created_by.title) xml.pubDate(experience.created_at.strftime("%a, %d %b %Y %H:%M:%S %z")) - xml.link(beer_url(experience.beer.page.title_for_url)) - xml.guid(beer_url(experience.beer.page.title_for_url)) + xml.link(brewery_beer_url(experience.beer.brewery, experience.beer)) + xml.guid(brewery_beer_url(experience.beer.brewery, experience.beer)) end end } diff --git a/app/views/friends/show.rhtml b/app/views/friends/show.rhtml index 2235dc4..3929a61 100644 --- a/app/views/friends/show.rhtml +++ b/app/views/friends/show.rhtml @@ -1,5 +1,5 @@ <% for friend in @friends do -%> -

<%= link_to friend.title, people_path(friend.page.title_for_url) -%>
+
<%= link_to friend.title, people_path(friend) -%>
<% end -%> <% content_for :sidebar do -%> diff --git a/app/views/layouts/application.rhtml b/app/views/layouts/application.rhtml index e9087da..0c5c5f3 100644 --- a/app/views/layouts/application.rhtml +++ b/app/views/layouts/application.rhtml @@ -35,15 +35,15 @@ <% unless @hide_sidebar -%> diff --git a/app/views/pages/_page.rhtml b/app/views/pages/_page.rhtml index dc60914..ea25bd7 100644 --- a/app/views/pages/_page.rhtml +++ b/app/views/pages/_page.rhtml @@ -22,6 +22,6 @@ <% content_for 'sidebar' do -%> <% if @page.allow_discussions? or !@page.discussions.empty? -%> - <%= link_to "Discuss", discussion_path(@page) -%> (<%= @page.discussions.size -%>)
+ <%= link_to "Discuss", discussion_path(@page.id) -%> (<%= @page.discussions.size -%>)
<% end -%> <% end -%> \ No newline at end of file diff --git a/app/views/pages/_pages.rxml b/app/views/pages/_pages.rxml index 3b5e0f4..696f79b 100644 --- a/app/views/pages/_pages.rxml +++ b/app/views/pages/_pages.rxml @@ -12,8 +12,8 @@ xml.rss(:version=>"2.0"){ xml.description(page.title) xml.author(page.created_by.title) xml.pubDate(page.created_at.strftime("%a, %d %b %Y %H:%M:%S %z")) - xml.link(page_url(page.title_for_url)) - xml.guid(page_url(page.title_for_url)) + xml.link(page_url(page)) + xml.guid(page_url(page)) end end } diff --git a/app/views/pages/edit.rhtml b/app/views/pages/edit.rhtml index 00d057a..9c7211d 100644 --- a/app/views/pages/edit.rhtml +++ b/app/views/pages/edit.rhtml @@ -2,7 +2,7 @@ <%= error_messages_for :page %> -<% form_for(:page, :url => page_path({ :id => @page.title_for_url }), :html => { :method => :put }) do |f| %> +<% form_for(:page, :url => page_path(@page), :html => { :method => :put }) do |f| %> <%= render :partial => 'page_form' %>

<%= submit_tag "Update" %> diff --git a/app/views/peoples/_peoples.rxml b/app/views/peoples/_peoples.rxml index 7222453..97cabb3 100644 --- a/app/views/peoples/_peoples.rxml +++ b/app/views/peoples/_peoples.rxml @@ -11,8 +11,8 @@ xml.rss(:version=>"2.0"){ xml.title(people.title) xml.description(people.title) xml.pubDate(people.created_at.strftime("%a, %d %b %Y %H:%M:%S %z")) - xml.link(people_url(people.page.title_for_url)) - xml.guid(people_url(people.page.title_for_url)) + xml.link(people_url(people)) + xml.guid(people_url(people)) end end } diff --git a/app/views/peoples/edit.rhtml b/app/views/peoples/edit.rhtml index ccd2d38..f411177 100644 --- a/app/views/peoples/edit.rhtml +++ b/app/views/peoples/edit.rhtml @@ -1,6 +1,6 @@ <%= error_messages_for :people %> -<% form_for(:people, :url => people_path(@people.page.title_for_url), :html => { :method => :put }) do |f| %> +<% form_for(:people, :url => people_path(@people), :html => { :method => :put }) do |f| %> <%= render :partial => 'people_form' %>

<%= submit_tag "Update" %> diff --git a/app/views/peoples/show.rhtml b/app/views/peoples/show.rhtml index f83ac53..71efaba 100644 --- a/app/views/peoples/show.rhtml +++ b/app/views/peoples/show.rhtml @@ -15,12 +15,12 @@ <% content_for :sidebar do -%> <%= new_people_link -%>
<%= edit_people_link(@people) %>
- <%= link_to 'Destroy', people_path(@people.page.title_for_url), :confirm => 'Are you sure?', :method => :delete %>
+ <%= link_to 'Destroy', people_path(@people), :confirm => 'Are you sure?', :method => :delete %>
<% unless @people.tagged_images.empty? -%><%= tagged_image_browser_link -%>
<% end -%> <%= show_friends_link(@people) -%>
<% unless @people.id == session[:people_id] or @people.friend_of?(session[:people_id]) -%><%= add_friend_link(@people) -%>
<% end -%> <% if @people.friend_of?(session[:people_id]) -%><%= remove_friend_link(@people) -%>
<% end -%> - <%= link_to "#{pluralize(@people.beers.size, 'Beer')} Experience", experience_path(:id => @people.page.title_for_url) -%>
+ <%= link_to "#{pluralize(@people.beers.size, 'Beer')} Experience", experience_path(@people) -%>
<% if @people.beers.size == Beer.count -%><%= @people.title -%> is a god among men, having tried every beer.
<% end -%> <%= render :partial => 'invitations/invitations' -%>
<% if has_permission_for_action?(:create, :invitations) -%><%= link_to_remote "#{image_tag('list-add.png')} Invitation", :update => 'person_invitations', :url => invitations_path, :with => "'people_id=#{@people.id}'", :success => "new Effect.Highlight('person_invitations', { duration: 2.0 })" -%>
<% end -%> diff --git a/app/views/styles/edit.rhtml b/app/views/styles/edit.rhtml index 7340059..333f7ff 100644 --- a/app/views/styles/edit.rhtml +++ b/app/views/styles/edit.rhtml @@ -1,6 +1,6 @@ <%= error_messages_for :style %> -<% form_for(:style, :url => style_path(@style.page.title_for_url), :html => { :method => :put }) do |f| %> +<% form_for(:style, :url => style_path(@style), :html => { :method => :put }) do |f| %> <%= render :partial => 'style_form' %>

<%= submit_tag "Update" %> diff --git a/app/views/styles/index.rhtml b/app/views/styles/index.rhtml index 27037c5..919c761 100644 --- a/app/views/styles/index.rhtml +++ b/app/views/styles/index.rhtml @@ -1,7 +1,7 @@ <% if @styles.empty? -%>

<% else -%> -
    <%= @styles.collect { |s| '
  1. ' + link_to(s.title, style_path(:id => s.page.title_for_url)) + '
  2. ' } %>
+
    <%= @styles.collect { |s| '
  1. ' + link_to(s.title, style_path(s)) + '
  2. ' } %>
<% end -%> <% content_for :sidebar do -%> diff --git a/app/views/styles/show.rhtml b/app/views/styles/show.rhtml index aec59d2..d4ad9e7 100644 --- a/app/views/styles/show.rhtml +++ b/app/views/styles/show.rhtml @@ -8,5 +8,5 @@ <% content_for :sidebar do -%> <%= new_style_link -%>
<%= edit_style_link(@style) -%>
- <%= link_to 'Destroy', style_path(@style.page.title_for_url), :confirm => 'Are you sure?', :method => :delete -%>
+ <%= link_to 'Destroy', style_path(@style), :confirm => 'Are you sure?', :method => :delete -%>
<% end -%> \ No newline at end of file diff --git a/config/environment.rb b/config/environment.rb index e938c43..2296ab1 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -1,4 +1,3 @@ -RAILS_GEM_VERSION = '1.2.3' unless defined? RAILS_GEM_VERSION require File.join(File.dirname(__FILE__), 'boot') Rails::Initializer.run do |config| diff --git a/config/environments/development.rb b/config/environments/development.rb index 0589aa9..568ccd0 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -8,9 +8,6 @@ config.cache_classes = false # Log error messages when you accidentally call methods on nil. config.whiny_nils = true -# Enable the breakpoint server that script/breakpointer connects to -config.breakpoint_server = true - # Show full error reports and disable caching config.action_controller.consider_all_requests_local = true config.action_controller.perform_caching = false diff --git a/config/routes.rb b/config/routes.rb index 98fce91..8b98103 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,8 +1,10 @@ ActionController::Routing::Routes.draw do |map| - map.resources :beers, :breweries, :pages, :discussions, :peoples, :roles, - :sessions, :styles, :galleries, :tag_images, :friends, :experiences, - :invitations + map.connect '', :controller => 'pages', :action => 'default_action' + map.resources :pages, :roles, :sessions, :styles, :galleries, :tag_images, + :friends, :experiences, :invitations, :peoples, :discussions + map.resources :breweries do |breweries| + breweries.resources :beers + end map.connect ':controller/:action/:id.:format' map.connect ':controller/:action/:id' - map.connect '/', :controller => 'pages', :action => 'default_action' end diff --git a/lib/wordy_parameter.rb b/lib/wordy_parameter.rb new file mode 100644 index 0000000..989451a --- /dev/null +++ b/lib/wordy_parameter.rb @@ -0,0 +1,10 @@ +module WordyParameter + def to_param + if self.respond_to?("page") + title = page.title + else + title = self.title + end + title.gsub(/ /, '_') + end +end