我剛剛通過觀看railscasts升級到rails 3.1.0和3.2.0來升級rails 3.0.9應用程序到rails 3.2.1。更新前我(當時的工作)的routes.rb文件看起來像:使用導軌進行路由3.2.1
match "home" => "pages#index"
match "*page" => "pages#show"
root :to => "pages#index"
我改變了我的routes.rb文件更新後:
match "home" => "pages#index"
match "pages/*page" => "pages#show", :format => false
root :to => "pages#index"
我在潰敗了這個想法從Ruby on Rails routing Globbing部分,以模仿rails 3.0.x.現在
當我我的鏈接,通過呈現在點擊:
<li><%= link_to "What We Do", "/what-we-do" %></li>
我得到這個錯誤:
Routing Error
No route matches [GET] "/what-we-do"
Try running rake routes for more information on available routes.
rake routes produces:
home /home(.:format) pages#index
/pages/*page pages#show
root/ pages#index
If that is helpful.
我試圖渲染頁面叫什麼,我們-do.html .erb,位於app/views/pages。
,這是我的控制器:
class PagesController < ApplicationController
def index
render :home, :layout => false
end
def show
render static_page
rescue
# page_not_found
end
private
def static_page
"#{RAILS_ROOT}/app/views/pages/#{params[:page]}.html.erb"
end
def page_not_found
render "#{Rails.root}/public/404.html", :layout => false
end
end
任何人有什麼建議?
。我把我的路線改回:'match「* page」=>「pages#show」'但真正的問題出現在我的控制器中。在rails 3.0.X中,你使用RAILS_ROOT,但是在3.1和以上,它是Rails.root。謝謝大家 – scommette 2012-02-22 20:10:54