2012-01-08 27 views
0

繼Michael Hartl的Rails教程不斷構建我們的示例應用程序,並且目前沒有在MicropostsController中定義'show',我們應該在MicropostsController或其他位置插入什麼代碼在我們的MVC框架中解決這個錯誤?Unknown action對於MicropostsController無法找到動作'show'

當我們點擊'刪除'飼料中的micropost時,我們得到「未知的操作'找不到'MicropostsController'的操作'錯誤。

class MicropostsController < ApplicationController 
    before_filter :authenticate, :only => [:create, :destroy] 

    def create 
    @micropost = current_user.microposts.build(params[:micropost]) 
    if @micropost.save 
     flash[:success] = "Micropost created!" 
     redirect_to root_path 
    else 
     @feed_items = [] 
     render 'pages/home' 
    end 
    end 

    def destroy 
     @micropost.destroy 
     redirect_back_or root_path 
    end 
end 

回答

0

請確認您已包含jquery_ujs.js。 檢查您的application.js並確保「// = require jquery_ujs」存在。

0

發生這種情況是因爲瀏覽器中的JavaScript被禁用(如通過腳本塊),或者像SeasonHuang已經寫入的那樣,jquery_ujs.js未正確加載。 如果調用rake routes,你會看到類似這樣的:

GET /microposts/:id Microposts#show 
DELETE /microposts/:id Microposts#destroy 

所以路徑顯示和破壞是一樣的。它們在HTTP方法上有所不同。但是,由於HTML表單不能發送DELETE請求,我們必須使用JavaScrip。如果沒有,你會發出GET請求來顯示尚未在控制器中定義的方法。

相關問題