On Fri, Jan 16, 2009 at 1:21 PM, naevity <[email protected]> wrote:

> yes, hardcoding it works. Let's say I want to use an ISBN barcode of
> "068816112X"
>
> This works:
>
> <%= barcode '068816112X', :encoding_function => Gbarcode::BARCODE_ISBN
> %>

Good. Just checking that the easy case works. :)

> Now, let's say in my types table, I have this:
>
> id:  1
> type: book
> upctype: GBarcode::BARCODE_ISBN

I think the problem is your model then.

GBarcode::BARCODE_ISBN is not a string. It's a constant that stands
for the Fixnum 3.

irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'gbarcode'
=> true
irb(main):003:0> Gbarcode::BARCODE_ISBN
=> 3
irb(main):006:0> Gbarcode::BARCODE_ISBN.class
=> Fixnum

> <%= barcode item.upcnumber, :encoding_format => item.type.upctype %>
>
> but that's when I get the "in method 'Barcode_Encode', argument 2 of
> type 'int' " error.

It's a somewhat opaque error message, but it's telling you that the
second argument is the wrong type... and that it wants an int.

Your view could just as easily contain:

<%= barcode "some_string", :encoding_format => 3 %>

and it should work the same as

<%= barcode "some_string", :encoding_format => Gbarcode::BARCODE_ISBN %>

The value you need to store in your database is the integer/Fixnum.

-Michael

-- 
Michael C. Libby
www.mikelibby.com

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to