Helpex - Trao đổi & giúp đỡ Đăng nhập
5

Tôi có một ứng dụng Rails 2.3.5 và tôi đang cố gắng kết xuất một số Partials từ bên trong một Model (tôi biết, tôi biết - tôi không nên làm như vậy). Lý do tôi làm điều này là tôi đang tích hợp máy chủ Comet (APE) vào ứng dụng Rails của mình và cần đẩy các bản cập nhật ra dựa trên các sự kiện của Model (ví dụ: after_create).

Tôi đã thử làm điều này:

ActionView::Base.new(Rails::Configuration.new.view_path).render(:partial  => "pages/show", :locals => {:page => self})

Điều này cho phép tôi hiển thị các phần đơn giản mà không phải người dùng trợ giúp, tuy nhiên nếu tôi cố gắng sử dụng một phần link_to của mình, tôi nhận được lỗi nêu rõ:

undefined method `url_for' for nil:NilClass

Tôi đã đảm bảo rằng đối tượng được chuyển vào "project_path (project)" không phải là nil. Tôi cũng đã thử bao gồm:

include ActionView::Helpers::UrlHelper
include ActionController::UrlWriter

trong Mô-đun có chứa phương thức thực hiện lệnh gọi "kết xuất" ở trên.

Có ai biết làm thế nào để làm việc xung quanh điều này?

Cảm ơn

5 hữu ích 1 bình luận 1.6k xem chia sẻ
7

Chúng tôi sử dụng gem render_anywhere và rất hài lòng với nó.

Từ README:

require 'render_anywhere'

class AnyClass
  include RenderAnwhere

  def build_html
    html = render :template => 'normal/template/reference',
                  :layout => 'application'
    html
  end
end
7 hữu ích 2 bình luận chia sẻ
0

Bao gồm cả hai mô-đun này là đủ. Có thể bạn quên thiết lập default_url_options[:host]? Nếu không có nó, bạn có thể sử dụng _pathnhững người trợ giúp, nhưng không thể sử dụng những người trợ giúp _url.

Bao gồm các mô-đun này và kiểm tra xem nó có hoạt động không irb, có thể nó sẽ dẫn bạn đến giải pháp đúng.

0 hữu ích 0 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ ruby-on-rails ruby models partials , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading