我有一個Rails 3應用程序,我使用的是基於非模型的控制器來提供一系列幻燈片。 SlideController會計算出當前幻燈片的前一個&的正確ID,然後將該ID提供給該視圖中的link_to幫助程序,以用於前向&後退按鈕。Ruby on Rails路由器奇怪
第一頁上的前進按鈕上的工具提示顯示爲:http://localhost:3000/slide/2/。當我右鍵點擊它時,選擇「複製鏈接位置」並將其粘貼到地址欄中,即可使用。當我通過JavaScript調用url時,它可以工作。當我點擊它,它失敗
的ActionController :: RoutingError(無路由匹配「/幻燈片/滑動/ 2」)
想知道它是與我的本地服務器有問題,我部署的消息到Heroku,並得到了同樣的錯誤。
爲什麼這個鏈接看起來完美的格式化,但它不是由路由器如何處理?
謝謝!
的routes.rb
RadioDose::Application.routes.draw do
get "/slide/:id" => "slide#show", :as => 'slide'
get "/slideshow" => "slide#show"
end
slide_controller.rb
class SlideController < ApplicationController
def show
@id = (params[:id].blank? ? '1' : params[:id])
@slide_name = 'slide' + @id
max_slide = 40
@last_slide = (@id.to_i > 1 ? @id.to_i - 1 : 1)
@next_slide = (@id.to_i < max_slide ? @id.to_i + 1 : max_slide)
end
end
show.html.erb <%= render :partial => @slide_name %>
<%= link_to 'Back', slide_path(@last_slide), :id => 'left-arrow', :class => 'sprite' %> <%= link_to 'Next', slide_path(@next_slide), :id => 'right-arrow', :class => 'sprite' %>
Page <%= @id %> <%= javascript_include_tag 'slide' %>
請將'rake routes'的輸出添加到您的問題中。 –
我認爲它來自你的JS,你介意複製/粘貼它的一些重要部分嗎? –