2012-02-14 9 views
2

私はEnki(ブロギング)の宝石https://github.com/xaviershay/enkiを、Deviseを登録に使用するForem(forums)gem https://github.com/radar/foremと一緒にインストールしました。すべてはフォーラム内で私はポスト(または何か)を削除するためのリンクにRails::method =>: 'show'アクションを探して削除する

<li><%= link_to t('delete', :scope => 'forem.topic'), topic_post_path(@topic, post), :method => :delete, :confirm => t("are_you_sure") %></li> 

をクリックしたときを除いて動作しているようだ、私はこのエラーメッセージ

Unknown action 

The action 'show' could not be found for Forem::PostsController 

を取得しています私はForemことに注意してくださいリンクは:method => :deleteなので、これは起こってはいけません。また、EnkiなしでForemを使用すると、この問題は発生しません。私は何らかの理由でレールアプリが:method =>:deleteを見ていないと仮定しているので、メソッドはdestroyアクションの代わりに "show"として登録されていますが、理由はわかりません。ログファイルでは、私は推測している

* REQUEST_METHOD : GET – 

が無効のルーティングにおける紛争のいくつかの並べ替えがあると言う:メソッド=>:削除しても、私はそれを把握することはできません。

のconfig/routes.rbを

Enki::Application.routes.draw do 
    mount Forem::Engine, :at => "/forums" 
    devise_for :users 

    namespace 'admin' do 
    resource :session 

    resources :posts, :pages do 
     post 'preview', :on => :collection 
    end 
    resources :comments 
    resources :undo_items do 
     post 'undo', :on => :member 
    end 

    match 'health(/:action)' => 'health', :action => 'index', :as => :health 

    root :to => 'dashboard#show' 
    end 

    resources :archives, :only => [:index] 
    resources :pages, :only => [:show] 

    constraints :year => /\d{4}/, :month => /\d{2}/, :day => /\d{2}/ do 
    get ':year/:month/:day/:slug/comments' => 'comments#index' 
    post ':year/:month/:day/:slug/comments' => 'comments#create' 
    get ':year/:month/:day/:slug/comments/new' => 'comments#new' 
    get ':year/:month/:day/:slug' => 'posts#show' 
    end 

    scope :to => 'posts#index' do 
    get 'posts.:format', :as => :formatted_posts 
    get '(:tag)', :as => :posts 
    end 

    root :to => 'posts#index' 
end 

すくいルート

forem  /forums           {:to=>Forem::Engine} 
     new_user_session GET /users/sign_in(.:format)      {:action=>"new", :controller=>"devise/sessions"} 
      user_session POST /users/sign_in(.:format)      {:action=>"create", :controller=>"devise/sessions"} 
    destroy_user_session DELETE /users/sign_out(.:format)      {:action=>"destroy", :controller=>"devise/sessions"} 
      user_password POST /users/password(.:format)      {:action=>"create", :controller=>"devise/passwords"} 
     new_user_password GET /users/password/new(.:format)     {:action=>"new", :controller=>"devise/passwords"} 
     edit_user_password GET /users/password/edit(.:format)     {:action=>"edit", :controller=>"devise/passwords"} 
         PUT /users/password(.:format)      {:action=>"update", :controller=>"devise/passwords"} 
cancel_user_registration GET /users/cancel(.:format)       {:action=>"cancel", :controller=>"devise/registrations"} 
     user_registration POST /users(.:format)        {:action=>"create", :controller=>"devise/registrations"} 
    new_user_registration GET /users/sign_up(.:format)      {:action=>"new", :controller=>"devise/registrations"} 
    edit_user_registration GET /users/edit(.:format)       {:action=>"edit", :controller=>"devise/registrations"} 
         PUT /users(.:format)        {:action=>"update", :controller=>"devise/registrations"} 
         DELETE /users(.:format)        {:action=>"destroy", :controller=>"devise/registrations"} 
      admin_session POST /admin/session(.:format)      {:action=>"create", :controller=>"admin/sessions"} 
     new_admin_session GET /admin/session/new(.:format)     {:action=>"new", :controller=>"admin/sessions"} 
     edit_admin_session GET /admin/session/edit(.:format)     {:action=>"edit", :controller=>"admin/sessions"} 
         GET /admin/session(.:format)      {:action=>"show", :controller=>"admin/sessions"} 
         PUT /admin/session(.:format)      {:action=>"update", :controller=>"admin/sessions"} 
         DELETE /admin/session(.:format)      {:action=>"destroy", :controller=>"admin/sessions"} 
    preview_admin_posts POST /admin/posts/preview(.:format)     {:action=>"preview", :controller=>"admin/posts"} 
      admin_posts GET /admin/posts(.:format)       {:action=>"index", :controller=>"admin/posts"} 
         POST /admin/posts(.:format)       {:action=>"create", :controller=>"admin/posts"} 
      new_admin_post GET /admin/posts/new(.:format)      {:action=>"new", :controller=>"admin/posts"} 
     edit_admin_post GET /admin/posts/:id/edit(.:format)     {:action=>"edit", :controller=>"admin/posts"} 
       admin_post GET /admin/posts/:id(.:format)      {:action=>"show", :controller=>"admin/posts"} 
         PUT /admin/posts/:id(.:format)      {:action=>"update", :controller=>"admin/posts"} 
         DELETE /admin/posts/:id(.:format)      {:action=>"destroy", :controller=>"admin/posts"} 
    preview_admin_pages POST /admin/pages/preview(.:format)     {:action=>"preview", :controller=>"admin/pages"} 
      admin_pages GET /admin/pages(.:format)       {:action=>"index", :controller=>"admin/pages"} 
         POST /admin/pages(.:format)       {:action=>"create", :controller=>"admin/pages"} 
      new_admin_page GET /admin/pages/new(.:format)      {:action=>"new", :controller=>"admin/pages"} 
     edit_admin_page GET /admin/pages/:id/edit(.:format)     {:action=>"edit", :controller=>"admin/pages"} 
       admin_page GET /admin/pages/:id(.:format)      {:action=>"show", :controller=>"admin/pages"} 
         PUT /admin/pages/:id(.:format)      {:action=>"update", :controller=>"admin/pages"} 
         DELETE /admin/pages/:id(.:format)      {:action=>"destroy", :controller=>"admin/pages"} 
      admin_comments GET /admin/comments(.:format)      {:action=>"index", :controller=>"admin/comments"} 
         POST /admin/comments(.:format)      {:action=>"create", :controller=>"admin/comments"} 
     new_admin_comment GET /admin/comments/new(.:format)     {:action=>"new", :controller=>"admin/comments"} 
     edit_admin_comment GET /admin/comments/:id/edit(.:format)    {:action=>"edit", :controller=>"admin/comments"} 
      admin_comment GET /admin/comments/:id(.:format)     {:action=>"show", :controller=>"admin/comments"} 
         PUT /admin/comments/:id(.:format)     {:action=>"update", :controller=>"admin/comments"} 
         DELETE /admin/comments/:id(.:format)     {:action=>"destroy", :controller=>"admin/comments"} 
    undo_admin_undo_item POST /admin/undo_items/:id/undo(.:format)   {:action=>"undo", :controller=>"admin/undo_items"} 
     admin_undo_items GET /admin/undo_items(.:format)      {:action=>"index", :controller=>"admin/undo_items"} 
         POST /admin/undo_items(.:format)      {:action=>"create", :controller=>"admin/undo_items"} 
    new_admin_undo_item GET /admin/undo_items/new(.:format)     {:action=>"new", :controller=>"admin/undo_items"} 
    edit_admin_undo_item GET /admin/undo_items/:id/edit(.:format)   {:action=>"edit", :controller=>"admin/undo_items"} 
     admin_undo_item GET /admin/undo_items/:id(.:format)     {:action=>"show", :controller=>"admin/undo_items"} 
         PUT /admin/undo_items/:id(.:format)     {:action=>"update", :controller=>"admin/undo_items"} 
         DELETE /admin/undo_items/:id(.:format)     {:action=>"destroy", :controller=>"admin/undo_items"} 
      admin_health  /admin/health(/:action)(.:format)    {:action=>"index", :controller=>"admin/health"} 
       admin_root  /admin(.:format)        {:controller=>"admin/dashboard", :action=>"show"} 
       archives GET /archives(.:format)        {:action=>"index", :controller=>"archives"} 
        page GET /pages/:id(.:format)       {:action=>"show", :controller=>"pages"} 
         GET /:year/:month/:day/:slug/comments(.:format)  {:year=>/\d{4}/, :month=>/\d{2}/, :day=>/\d{2}/, :controller=>"comments", :action=>"index"} 
         POST /:year/:month/:day/:slug/comments(.:format)  {:year=>/\d{4}/, :month=>/\d{2}/, :day=>/\d{2}/, :controller=>"comments", :action=>"create"} 
         GET /:year/:month/:day/:slug/comments/new(.:format) {:year=>/\d{4}/, :month=>/\d{2}/, :day=>/\d{2}/, :controller=>"comments", :action=>"new"} 
         GET /:year/:month/:day/:slug(.:format)    {:year=>/\d{4}/, :month=>/\d{2}/, :day=>/\d{2}/, :controller=>"posts", :action=>"show"} 
     formatted_posts GET /posts.:format         {:controller=>"posts", :action=>"index"} 
        posts GET /(:tag)(.:format)        {:controller=>"posts", :action=>"index"} 
        root  /            {:controller=>"posts", :action=>"index"} 
+0

ログファイルでHTTPメソッドをチェックしましたか? – nambrot

+0

@nambrot * REQUEST_METHOD: – Leahcim

答えて

5

はあなたのJavaScriptがお使いのレイアウトファイルに含まれていることを確認してください:削除のために

<%= javascript_include_tag :defaults %> #Rails 3.0.x 
<%= javascript_include_tag :application %> #Rails 3.1+ 
<%= csrf_meta_tag %> 

を、あなたは本当に代わりにbutton_toを使用する必要があります。 Link_toは、HTTP POST要求に使用しないでください。

+1

Rails 3.1を使用している場合、これは '<%= javascript_include_tag:application%>'にする必要があります。その後、アプリケーションには適切なjQueryファイルが含まれている必要があります。 –

-2

あなたがそのコントローラーに何の方法showを持っていないように見えます。ただそれを定義してください。

+0

を取得しますが、なぜdeleteメソッドにshowアクションが必要なのでしょうか? deleteはdestroyを表示しません。ショーアクションを定義した場合、必要に応じて削除されません。 – Leahcim

+0

これは同じルートですが、httpメソッド – ck3g

+0

ですべてが細かくなるはずです=) – ck3g

0

あなたは次にあなたがバンドルサーバーをインストールし、再起動を実行する必要が

gem 'jquery-rails' 

あなたのGemfileにRailsの宝石のためのjQueryを含める必要があります。これは、layout.html.erbにjQueryフレームワークを組み込んだとしても、jQueryのアダプターを使用して邪魔されないスクリプトを使用する必要があるからです。

0

これは、jquery_ujsファイルがjavascriptに読み込まれないためです。

あなたは/アプリをチェックする必要があります

ファイルnormalyこれはapplication.jsファイルが含まれており、またあなたのjquery_ujsが含まれます

<%= javascript_include_tag "application" %> 

application.html.erbとして名前、あなたのレイアウトファイルでこれを行いますassets/application.jsファイルこの行が存在する

//= require jquery_ujs 

自分で追加しない場合は、

それは治すます:)

ヒント:これらのいずれかが問題の原因である可能性があります

1 - あなたはapplication.js

を使用していない場合には、原因となるが

2ライブラリをインクルードするために別のファイルを使用していて、埋め込むのを忘れたjquery_ujsそこに

関連する問題