使用Mongoid :: Errors :: DocumentNotFound rails 3.1处理嵌套资源中的异常

时间:2012-01-19 15:13:22

标签: ruby-on-rails ruby-on-rails-3 exception-handling mongoid

我的 application_controller.rb

class ApplicationController < ActionController::Base
  protect_from_forgery
   rescue_from Mongoid::Errors::DocumentNotFound, :with => :render_not_found
  def render_not_found
   render :file => "#{Rails.root}/public/404.html", :status => 404, :layout => false
  end
end

然后我打电话给

此代码在我的routes.rb中运行良好:

resources :posts

问题是如果我在routes.rb中有这样的嵌套资源:

resources :users do
 resources :posts
end

我在 posts_controller.rb

中有这个
class PostsController < ApplicationController

end

现在使用此父:用户不起作用!我在 posts_controller.rb 这个嵌套资源的每个操作中写下了下一个工作正常的例子..

def show
@post = Post.find(params[:id])
respond_to do |format|
  format.html # show.html.erb
  format.json { render json: @post }
end
rescue
 render_not_found
end

1 个答案:

答案 0 :(得分:0)

在此处的控制器代码中

class Users::PostsController < ApplicationController

end

您有Users::Posts,但您没有在上面的路线中指定PostsController的位置。