これはstackoverflowに対する私の最初の質問であり、自分でバグを修正できなかったのは少し気が遠くなるような気がしますが、ここで説明します。
ページインデックスのリンクを編集アクションに接続しようとすると、次のエラーが発生します。
No route matches {:action=>"edit", :controller=>"pages"}
だから明らかに私は最初にコントローラーをチェックしました-そこには間違いなく編集アクションがあります!
これが私の関連するレーキルートの出力です:
pages GET /pages(.:format) pages#index
POST /pages(.:format) pages#create
new_page GET /pages/new(.:format) pages#new
edit_page GET /pages/:id/edit(.:format) pages#edit
page GET /pages/:id(.:format) pages#show
PUT /pages/:id(.:format) pages#update
DELETE /pages/:id(.:format) pages#destroy
そして私のconfig/routers.rb:
Portfolio::Application.routes.draw do
resources :pages
resources :sessions, only: [:new, :create, :destroy]
resources :users
root to: 'pages#home'
match '/signup', to: 'users#new'
match '/signin', to: 'sessions#new'
match '/signout', to: 'sessions#destroy', via: :delete
match '/admin', to: 'admin#index'
match '/new', to: 'pages#new'
match '/edit', to: 'pages#edit'
match '*path', :controller => 'redirect', :action => 'index'
そして万が一の場合に備えて、コントローラーのアクション。
def edit
@page = Page.find(params[:id])
end
パスと呼ばれるビューも提供すると思いました。
<% Page.where("parent_id IS NULL").each do |page| %>
<li>
<%= link_to page.title, page %>
<%= link_to "Edit", page, edit_page_path %>
<%= link_to "Delete", page, method: :delete,
data: { confirm: "You sure?" } %>
</li>
<% end %>
私はタイプミスが見られないというひどい習慣を持っているので、もし私がばかげたタイプミスを作ったとしたら、それは私がこれを修正できない理由を説明するでしょう。
どんな助けでもいただければ幸いです。
ありがとう!