モデルベースではないコントローラを備えたRails 3アプリがあります。これは一連のスライドを提供するために使用しています。 SlideControllerは、前の&の現在のスライドの正しいIDを特定し、そのIDをforward戻るボタンのビューのlink_toヘルパーに送ります。Ruby on Railsルーターの奇妙さ
最初のページの[進む]ボタンのツールヒントは、http://localhost:3000/slide/2/となります。私はそれを右クリックし、 "リンクの場所をコピー"を選択し、アドレスバーに貼り付けると、それは動作します。私はjavascript経由でURLを呼び出すとき、それは動作します。私はそれをクリックすると、そのメッセージ
ActionController :: RoutingError(Noルートの試合「/スライド/スライド/ 2」)で失敗
それは私のローカルサーバーに問題だった場合、私は展開疑問に思いますヘロクに、同じエラーがあった。
なぜこのリンクは整形されたように見えますが、ルータによって処理されていないのはなぜですか?
ありがとうございます!
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から来ていると思いますが、その重要な部分をコピー/貼り付けても構いませんか? –