Hello,

I am using Hobo 1.3 and just added the jquery plugin because I wanted to 
use the <select-one-or-new> tag. I am currently using it in two places. In 
the first case it is working as intended, but the second case is a little 
more complicated. I will try to explain how it is used in both cases.

Models:

PartNumber
  number :string
  has_many :manufacturer_parts
  belongs_to :footprint
end


Footprint
  name :string
  has_many :part_numbers
end


ManufacturerParts
  number :string
  belongs_to :part_number
  belongs_to :manufacturer
end


Manufacturer
  name :string
  has_many :manufacturer_parts
end


In the first (simpler) case, I am creating a new PartNumber. I use the 
<select-one-or-new> to select the footprint, or create a new one. That 
works.

In the second case I am on a PartNumber's show page. On this page is a 
collection of ManufacturerParts. Because I have defined 
create_for_part_number in the ManufacturerPartsController I have a form 
here to add a new ManufacturerPart to the collection. Within that form I 
use a <select-one-or-new> to select the Manufacturer. When creating a new 
manufacturer I get the following error: ArgumentError (invalid typed-id: 
:manufacturer). I think I have traced the problem down to the following 
code in Dryml::TemplateEnvironment#typed_id:

      id = if (typed_id = object.try.typed_id)
             typed_id
           elsif object == @this
             "this"
           end

Notice that there is a case where id does not get assigned a value: object 
does not return a valid typed_id and object is not @this. In my first use 
case typed_id returns "this:footprint". I believe that in the second case 
@this is the PartNumber and object is the new ManufacturerPart and 
therefore the if statement does not assign anything to id and so typed_id 
returns ":manufacturer", which is invalid. As a test I tried to modify the 
code to the following just to make sure typed_id always returns something 
that is valid:

      id = if (typed_id = object.try.typed_id)
             typed_id
           else
             "this"
           end


Interestingly this worked, and as far as I know it didn't break anything 
else. Which brings me to the question. Is this likely to break something? 
It doesn't seem like this is the right way to fix the problem, but I do not 
know enough about Hobo's internals to come up with a better solution. Any 
suggestions?

FYI - I did a quick check and it looks like Hobo 2.0.1 uses the same code 
for typed_id



-- 
You received this message because you are subscribed to the Google Groups "Hobo 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/hobousers.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to