2012-04-03 23 views
5

Tôi đang cố gắng hiển thị một khung nhìn rabl thành chuỗi trong một nhiệm vụ rails 3.2. Tôi đang kết xuất nó thành chuỗi để gửi một số JSON qua Pusher từ một tác vụ nền. Tôi đã nhìn vào render_to_string khác nhau từ câu trả lời công việc rake nhưng không ai trong số họ dường như làm việc. Dưới đây là những gì tôi có cho đến nay:cách hiển thị chế độ xem rabl trong tác vụ rake?

controller = PostsController.new 
av = ActionView::Base.new(MyApp::Application.config.paths['app/views'].first,{},controller) 
@post = post 
Pusher["some channel"].trigger('new_post', av.render(:template => 'posts/show.json.rabl')) 

Với nỗ lực này, tôi nhận được một ActionView :: Mẫu :: Lỗi ngoại lệ và lỗi "phương thức không xác định` tham số 'cho nil: NilClass ".

Trả lời

6

Có một cách dễ dàng hơn để thực hiện điều đó bằng cách gọi Rabl::Renderer methods. Tuy nhiên, ngữ cảnh của bạn sẽ quan trọng khi bạn cố gắng hiển thị nội dung nào đó. Vì vậy, hãy cẩn thận nếu có bất kỳ phương pháp điều khiển/trợ giúp nào bên trong các tệp rabl của bạn vì chúng sẽ không có sẵn khi gọi nó bên ngoài. Đây là một mã mẫu mà bạn có thể sử dụng, được thử nghiệm với Rabl 0.6.13.

Rabl::Renderer.json(@post, 'posts/show', :view_path => 'app/views') 
Các vấn đề liên quan