Crash when tryling to display a number followed by an asterisk

3 views
Skip to first unread message

Shamu

unread,
Sep 17, 2008, 11:02:51 AM9/17/08
to Ruby Reports
Hello everyone,

I'm tryling to generate barcodes in a report, so I used the span()
helper to get the barcode style/font when the report is processed. My
problem is that I get an error ("no implicit conversion between nil
and integer") whenever I have a number character followed by the
caracter '*' in the barcode.

Anyone has an idea ? if I have a letter before the '*' everything
works fine.

annex :

the code :

"ruby code" style element :
content = '*'+item.id.to_s+'P'+item.value+'*'

"ruby literal" style element :
span('barcode',votepour)

"item" is an ActiveRecord object and the "value" attribute is a string
in the database, whenever the "value" attribute ends with a numerical
character, the template processing crashes.



Gregory Brown

unread,
Sep 17, 2008, 11:08:35 AM9/17/08
to ruby-r...@googlegroups.com
On Wed, Sep 17, 2008 at 11:02 AM, Shamu <sham...@gmail.com> wrote:
>
> Hello everyone,
>
> I'm tryling to generate barcodes in a report, so I used the span()
> helper to get the barcode style/font when the report is processed. My
> problem is that I get an error ("no implicit conversion between nil
> and integer") whenever I have a number character followed by the
> caracter '*' in the barcode.
>
> Anyone has an idea ? if I have a letter before the '*' everything
> works fine.

Hi. Isn't this a Rails question? I don't see any Ruport code in your example.

-greg

--
Technical Blaag at: http://blog.majesticseacreature.com | Non-tech
stuff at: http://metametta.blogspot.com

Sylvain Abélard

unread,
Sep 17, 2008, 11:19:12 AM9/17/08
to ruby-r...@googlegroups.com
I'd also bet on a Rails error (ie. item is nil) but the following line

gest me confused:
> if I have a letter before the '*' everything works fine.

But I can't see another explanation for


>"no implicit conversion between nil and integer"

BTW, I quickly tried some code like
nil + 5
42 + nil
nil + '4'
'4' + nil
and I never got this kind of error.
The closest was "TypeError: nil can't be coerced into Fixnum".

Shamu, is this your real error log ?
Could you post a trace or tell us what Ruby version you are using ?

> "ruby code" style element :
> content = '*'+item.id.to_s+'P'+item.value+'*'
> "ruby literal" style element :
> span('barcode',votepour)

You may get this error from votepour, or when using content, but you
did not give enough code.

--
Sylvain Abélard
"J'ai décidé d'être heureux, c'est meilleur pour la santé." -Voltaire

Gregory Brown

unread,
Sep 17, 2008, 11:20:39 AM9/17/08
to ruby-r...@googlegroups.com
On Wed, Sep 17, 2008 at 11:19 AM, Sylvain Abélard
<sylvain...@gmail.com> wrote:
>
> I'd also bet on a Rails error (ie. item is nil) but the following line
> gest me confused:
>> if I have a letter before the '*' everything works fine.

Unless there is Ruport related content here, please discuss this off-list.

Thanks for helping though Sylvain!

-greg

Message has been deleted

Shamu

unread,
Sep 17, 2008, 1:05:56 PM9/17/08
to Ruby Reports
thanks everyone, I found a solution... don't exactly know why one
version works and one crashes... but I don't have the time to check it
further right now :)

anyway for the record :

<ODT FILE CONTENT (WORKS)>

votepour = item1.num.to_s+'P'+item2.num
span('barcode','*'+votepour+'*')

</ODT FILE CONTENT (WORKS)>

<ODT FILE CONTENT (CRASHES)>

votepour = '*'+item1.num.to_s+'P'+item2.num+'*'
span('barcode',votepour)

</ODT FILE CONTENT (CRASHES)>

the full error trace :

TypeError in DocumentsController#generate

no implicit conversion from nil to integer

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:131:in `[]'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:131:in `wrap'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:131:in `wrap'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:90:in `write_text'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/default.rb:50:in `write'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:75:in `write_element'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:73:in `each'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:73:in `write_element'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/default.rb:31:in `write'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:75:in `write_element'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:73:in `each'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:73:in `write_element'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/default.rb:31:in `write'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:75:in `write_element'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:73:in `each'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:73:in `write_element'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/default.rb:31:in `write'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:75:in `write_element'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:73:in `each'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:73:in `write_element'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/default.rb:31:in `write'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:75:in `write_element'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:73:in `each'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:73:in `write_element'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/default.rb:31:in `write'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:75:in `write_element'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:73:in `each'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:73:in `write_element'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/default.rb:31:in `write'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:75:in `write_element'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:73:in `each'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:73:in `write_element'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/default.rb:31:in `write'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:75:in `write_element'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:73:in `each'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:73:in `write_element'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/default.rb:31:in `write'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:117:in `write_document'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:111:in `each'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/pretty.rb:111:in `write_document'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/formatters/default.rb:28:in `write'
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
1.8/rexml/document.rb:195:in `write'
/Library/Ruby/Gems/1.8/gems/documatic-0.2.0/lib/documatic/
open_document_text/template.rb:205:in `pretty_xml'
/Library/Ruby/Gems/1.8/gems/documatic-0.2.0/lib/documatic/
open_document_text/template.rb:148:in `compile'
/Library/Ruby/Gems/1.8/gems/documatic-0.2.0/lib/documatic/
open_document_text/template.rb:106:in `process'
/Library/Ruby/Gems/1.8/gems/documatic-0.2.0/lib/documatic/
open_document_text/template.rb:83:in `process_template'
app/controllers/documents_controller.rb:52:in `generate'
...

( the rest of the stacktrace is just for rails and mongrel so i
removed it )
Reply all
Reply to author
Forward
0 new messages