だから私は非常にシンプルだと思うレイアウトを持っています。私の設定ルートは次のとおりです。
resources :webcomics
match '/webcomics/first' => 'webcomics#first', :as => :first
match '/webcomics/random' => 'webcomics#random', :as => :random
match '/webcomics/latest' => 'webcomics#latest', :as => :latest
コントローラ:
def show
@webcomic = Webcomic.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @webcomic }
end
end
def first
@webcomic = Webcomic.order("created_at ASC").first
respond_to do |format|
format.html { render 'show'}
format.json { render json: @webcomic }
end
end
ナビゲーションバー:
<%= link_to first_webcomics_path, :rel => "tooltip", :title => "first comic" do %>
formatting in here
<% end %>
このリンクをクリックすると、正しいパス /webcomics/first に移動しますが、エラーが表示されます
Routing Error
No route matches {:action=>"edit", :controller=>"webcomics"}
どのように「編集」するのか頭を悩ませています。このメッセージが完全に間違っていても、編集はできますが、なぜアクション編集に行こうとするのでしょうか。
def edit
@webcomic = Webcomic.find(params[:id])
end
レーキルートの結果:
first_webcomics GET /webcomics/first(.:format) webcomics#first
latest_webcomics GET /webcomics/latest(.:format) webcomics#latest
random_webcomics GET /webcomics/random(.:format) webcomics#random
webcomics GET /webcomics(.:format) webcomics#index
POST /webcomics(.:format) webcomics#create
new_webcomic GET /webcomics/new(.:format) webcomics#new
edit_webcomic GET /webcomics/:id/edit(.:format) webcomics#edit
webcomic GET /webcomics/:id(.:format) webcomics#show
PUT /webcomics/:id(.:format) webcomics#update
DELETE /webcomics/:id(.:format) webcomics#destroy
root / webcomics#index