Thanks to you for your debugging Craig ;)

El 10/09/13 17:12, Craig DeHaan escribió:
> 
> Hi Ignacio,
> 
> Thank you very much for following up with this. I am glad to hear that
> this does not cause any other problems with the code. I have already
> patched a local copy of the gem and am ready to deploy it to our server,
> so a backport will not be necessary (at least for me).
> 
> Thanks,
> Craig
> 
> 
> On Sunday, September 8, 2013 11:21:52 AM UTC-4, Ignacio Huerta wrote:
> 
>     Hi Craig,
> 
>     I have reproduced your problem with the latest Hobo, and you are
>     completely right: creating a new manufacturer in a new
>     manufacturer_part
>     form AND inside an existing record (show of partnumber) was making Hobo
>     partial system crazy (the part contexts were invalid, and so the Ajax
>     request failed).
> 
>     I have tested your solution with the Hobo integration tests and
>     everything seems OK. Those tests use partials a lot so I'm pretty
>     confident we are not breaking anything.
> 
>     I've opened a pull request in case anyone else want to comment on the
>     code: https://github.com/Hobo/hobo/pull/37
>     <https://github.com/Hobo/hobo/pull/37>.
> 
>     This will apply to future versions of Hobo, please say if you think
>     it's
>     important to backport this to Hobo 1.3 or you can manage patching
>     the gem.
> 
>     Good job debugging the problem!
> 
>     Warm regards,
>     Ignacio
> 
>     El 04/09/13 22:03, Craig DeHaan escribi�:
>     >
>     > 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] <javascript:>.
>     > To post to this group, send email to [email protected]
>     <javascript:>.
>     > Visit this group at http://groups.google.com/group/hobousers
>     <http://groups.google.com/group/hobousers>.
>     > For more options, visit https://groups.google.com/groups/opt_out
>     <https://groups.google.com/groups/opt_out>.
> 
>     -- 
>     Ignacio Huerta Arteche
>     http://www.ihuerta.net
>     Tel�fono: 0034 645 70 77 35
>     Email realizado con software libre
> 
> -- 
> 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.

-- 
Ignacio Huerta Arteche
http://www.ihuerta.net
Teléfono: 0034 645 70 77 35
Email realizado con software libre

-- 
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