2016-04-13 8 views
2

以下のように、連絡先#show prefix 'contact'がありません。Rails - ルートヘルパープレフィックスがありません

すくいルート

   contacts GET /contacts(.:format)      contacts#index 
         POST /contacts(.:format)      contacts#create 
      new_contact GET /contacts/new(.:format)     contacts#new 
      edit_contact GET /contacts/:id/edit(.:format)   contacts#edit 
         GET /contacts/:id(.:format)     contacts#show 
         PATCH /contacts/:id(.:format)     contacts#update 
         PUT /contacts/:id(.:format)     contacts#update 
         DELETE /contacts/:id(.:format)     contacts#destroy 

私は、これは次のリンクをクリックしたときに、私が代わりにスラッシュのドットを取得していた理由である考えています。

_contact.html.erb

<%= link_to "delete contact", contact, method: :delete, 
            data: { confirm: "You sure?" } %> 

サーバーが適切なDELETEリクエストをログに記録し、しかし、正しい/連絡先/ 26の代わりに/contact.26レンダリングすることはできません。

Started DELETE "/contact.26" for 128.177.12.30 at 2016-04-13 21:04:30 +0000 

ActionController::RoutingError (No route matches [DELETE] "/contact.26"): 

私が代わりにスラッシュドットに遭遇したすべての投稿は、複数形の誤差に由来すると思われる、しかし、私は、これはここにそうであるとは考えていません。

また、ルートファイルからの連絡先、$ rakeルートの実行、リソースの追加:連絡先、$ rakeルートの実行、問題は解決されています。

この問題は、モデルの残りの部分に接頭辞がないか、削除時にこのエラーが発生しないため、連絡先モデルに固有のようです。

「連絡先#」に「連絡先」プレフィックスを追加するにはどうすればよいですか?参照用

routes.rbをファイル:

Rails.application.routes.draw do 
    root 'static_pages#home' 
    get 'help' => 'static_pages#help' 
    get 'about' => 'static_pages#about' 
    get 'contact' => 'static_pages#contact' 
    get 'signup' => 'users#new' 
    get 'login' => 'sessions#new' 
    get 'newevent' => 'events#new' 
    get 'newteam' => 'teams#new' 
    get 'newperformance' => 'performances#new' 
    get 'newhotel' => 'hotels#new' 
    get 'newcontact' => 'contacts#new' 
    get 'newflight' => 'flights#new' 
    get 'newground' => 'grounds#new' 
    get 'newguest' => 'guests#new' 
    post 'login' => 'sessions#create' 
    delete 'logout' => 'sessions#destroy' 
    resources :users 
    resources :events 
    resources :teams do 
    member do 
     get :events 
    end 
    end 
    resources :performances 
    resources :hotels 
    resources :contacts 
    resources :flights 
    resources :grounds 
    resources :guests 
    resources :account_activations, only: [:edit] 
    resources :password_resets, only: [:new, :create, :edit, :update] 
end 
+0

{%= link_to "連絡先を削除"、contact_path(連絡先)、メソッド::削除、 データ:{確認: "本当ですか?" }%> ' – Abhi

+0

同じルーティングエラーです。残念ながら。 – ncarroll

答えて

0

あなたは

resources :contacts 

get 'contact' => 'static_pages#contact' 

によって設定されたルートの間で競合していることが最も簡単な解決策は、変化におそらく静的ページのリンク。可能であれば、リソースを一緒に保つことがベストです。

+0

ありがとう!彼らがチュートリアルの残り物であるので、私は静的なページを忘れました、今私は壁に頭を打つのをやめることができます... – ncarroll

0

この同じエラーが発生しました。

私の問題への修正はしたこと、私は「リソース」、そしてあなたと同じ問題を取得していたリソース

の末尾に「S」。

私は「リソース」に、それを変更し、それが私の場合には

私の問題を修正だけでタイプミスでした。

0

このエラーは私には昨日表示されました。使用されていないヘルパーファイルを削除していた問題を修正しました。あなたのために試してみる価値があるかもしれません。

関連する問題