继迈克尔·哈特尔的Rails Tutorial不断构建我们的示例应用程序,并且当前没有在MicropostsController中定义“show”时,我们应该在MicropostsController或我们的MVC框架中的任何其他位置插入什么代码来修复此错误?
当我们点击“删除”我们Feed中的微博时,我们得到“未知操作无法找到MicropostsController的动作'show'错误。
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 :(得分:0)
请确认您已包含jquery_ujs.js。 检查你的application.js并确保“// = require jquery_ujs”存在。
答案 1 :(得分:0)
这种情况正在发生,因为您的浏览器中的JavaScript被禁用(通过脚本块f.i.),或者像SeasonHuang已经写过的那样,jquery_ujs.js没有正确加载。
如果你调用rake routes
,你会看到类似的内容:
GET /microposts/:id Microposts#show
DELETE /microposts/:id Microposts#destroy
所以展示和销毁的路径是一样的。它们在HTTP方法上有所不同。但由于HTML表单无法发送DELETE请求,我们必须使用JavaScrip。如果没有它,你将发出GET请求以显示尚未在控制器中定义的方法。