Princely Plugin: get nil.size error


#1

Hi All,

I want to generate pdf with css. I am using princely plugin.

This is code which I written

def pdf
prince = Prince.new()
html_string = render_to_string(:template =>
‘/users/paid_invoice.pdf.erb’)
send_data(
prince.pdf_from_string(html_string),
:filename => ‘some_document.pdf’,
:type => ‘application/pdf’
)
end

But I am getting error of nil.size

You have a nil object when you didn’t expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.size

RAILS_ROOT: /var/www/sortapp
Application Trace | Framework Trace | Full Trace

/usr/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/streaming.rb:123:in
send_data' app/controllers/users_controller.rb:135:inpdf’

I also used make_and_send_pdf function but got the same error.
I thought I am getting error in render_to_string function.

Can anyone tell me how can I solve this issues?

Thanks in advance


#2

Did you ever figure out this problem?

I have a working application and my code works on my laptop, but when I
try it on our production server I come up with this error, but for the
life of me I can’t figure out why it is being thrown on one machine and
not the other.

NoMethodError: undefined method `size’ for nil:NilClass

[GEM_ROOT]/gems/actionpack-2.1.0/lib/action_controller/streaming.rb:123:in
send_data' [RAILS_ROOT]/vendor/plugins/princely/lib/pdf_helper.rb:45:inmake_and_send_pdf’
[RAILS_ROOT]/vendor/plugins/princely/lib/pdf_helper.rb:13:in render' [RAILS_ROOT]/app/controllers/driver_payments_controller.rb:13:inprint’

Anyone got any ideas?

Thanks.

Brijesh S. wrote:

Hi All,

I want to generate pdf with css. I am using princely plugin.

This is code which I written

def pdf
prince = Prince.new()
html_string = render_to_string(:template =>
‘/users/paid_invoice.pdf.erb’)
send_data(
prince.pdf_from_string(html_string),
:filename => ‘some_document.pdf’,
:type => ‘application/pdf’
)
end

But I am getting error of nil.size

You have a nil object when you didn’t expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.size

RAILS_ROOT: /var/www/sortapp
Application Trace | Framework Trace | Full Trace

/usr/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/streaming.rb:123:in
send_data' app/controllers/users_controller.rb:135:inpdf’

I also used make_and_send_pdf function but got the same error.
I thought I am getting error in render_to_string function.

Can anyone tell me how can I solve this issues?

Thanks in advance


#3

Hi

Unfortunately I don’t remember it. I just remember that I applied a
patch in one of the file of gem.
Apply below patch in var/lib/gems/1.8/gems/htmldoc-0.2.0/lib/htmldoc.rb
file.

@result[:output] = result
result.split("\n").each do |line|

  • line.strip! (patch)
    case line
    when /^BYTES: (\d+)/
    @result[:bytes] = $1.to_i

Patch file is attached.

Let me know if this is worked or not.

Thanks
Brijesh S.

Ash F. wrote:

Did you ever figure out this problem?

I have a working application and my code works on my laptop, but when I
try it on our production server I come up with this error, but for the
life of me I can’t figure out why it is being thrown on one machine and
not the other.

NoMethodError: undefined method `size’ for nil:NilClass

[GEM_ROOT]/gems/actionpack-2.1.0/lib/action_controller/streaming.rb:123:in
send_data' [RAILS_ROOT]/vendor/plugins/princely/lib/pdf_helper.rb:45:inmake_and_send_pdf’
[RAILS_ROOT]/vendor/plugins/princely/lib/pdf_helper.rb:13:in render' [RAILS_ROOT]/app/controllers/driver_payments_controller.rb:13:inprint’

Anyone got any ideas?

Thanks.

Brijesh S. wrote:

Hi All,

I want to generate pdf with css. I am using princely plugin.

This is code which I written

def pdf
prince = Prince.new()
html_string = render_to_string(:template =>
‘/users/paid_invoice.pdf.erb’)
send_data(
prince.pdf_from_string(html_string),
:filename => ‘some_document.pdf’,
:type => ‘application/pdf’
)
end

But I am getting error of nil.size

You have a nil object when you didn’t expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.size

RAILS_ROOT: /var/www/sortapp
Application Trace | Framework Trace | Full Trace

/usr/lib/ruby/gems/1.8/gems/actionpack-2.1.2/lib/action_controller/streaming.rb:123:in
send_data' app/controllers/users_controller.rb:135:inpdf’

I also used make_and_send_pdf function but got the same error.
I thought I am getting error in render_to_string function.

Can anyone tell me how can I solve this issues?

Thanks in advance


#4

This unfortunatly wasn’t the problem, but I did manage to figure out I
only got it when running through mod_rails. We just deployed the app to
another server that was rebuilt from scratch and it is working now, so
no idea what the actual cause was.

Thanks for the help.