OK, I was able to reproduce your error and am working on a fix.

If you don't get a timely response for Hobo issues, please create one
in Github.   Occasionally I will miss issues raised on the mailing
list, but if it's on Github I can't ignore it.

cheers,
Bryan


On Wed, Nov 7, 2012 at 8:19 AM, Bob Sleys <[email protected]> wrote:
> I'm still stuck on this one.
> I did try turning deprecated routes back and it didn't fix it.
> Any help if finding  word around would be appreciated.
>
> Bob
>
>
> On Tuesday, October 23, 2012 11:04:13 AM UTC-4, Bob Sleys wrote:
>>
>> Has there been any update on this?  Could I add something to my routes.rb
>> as a work around?  If so any hints would be appreciated.
>>
>> Thanks
>> Bob
>>
>> On Wednesday, October 10, 2012 11:04:51 AM UTC-4, Bryan Larsen wrote:
>>>
>>> The new page uses the right path, but the edit page doesn't?   Sounds
>>> like a bug alright, paths was the last major change to land in Hobo
>>> 2.0, so it's probably a bug in Hobo.   Can you send the full back
>>> trace?
>>>
>>> thanks,
>>> Bryan
>>>
>>>
>>> On Wed, Oct 10, 2012 at 11:01 AM, Bob Sleys <[email protected]> wrote:
>>> > GRR I thought I had this all done but now I getting the following error
>>> > on
>>> > an edit page, note prior to this I was playing around with creating a
>>> > new
>>> > record
>>> >
>>> > NoMethodError in Machines#edit
>>> >
>>> > Showing controller: machines; dryml-tag: edit-page where line #1
>>> > raised:
>>> >
>>> > undefined method `complete_select_model_machine_path' for
>>> > #<#<Class:0x00000005b071d8>:0x00000005b0e028>
>>> >
>>> > The path the auto completer in my mode is creating is
>>> >
>>> > complete_select_model_machines GET
>>> > /machines/complete_select_model(.:format)
>>> > machines#complete_select_model
>>> >
>>> > Note the plural on the machines but the edit form is looking for the
>>> > singular form.
>>> >
>>> > My dryml is using the following
>>> >
>>> >        <machine-model-view:>
>>> > <name-one complete-target="&@machine" completer="select_model"/>
>>> >       </machine-model-view:>
>>> >
>>> > as part of the machine form tag.
>>> >
>>> > Bob
>>> >
>>> > On Wednesday, October 10, 2012 10:30:52 AM UTC-4, Bob Sleys wrote:
>>> >>
>>> >> Ok one more follow up on this for anyone else following this
>>> >>
>>> >> Since I'm returning a string that is a composite of two fields across
>>> >> two
>>> >> models and I'm overiding the name of the model to do the same there is
>>> >> no
>>> >> proper automatic find_by_name so I had to provide my own.
>>> >>
>>> >> That probably wasn't very clear so here are the details.
>>> >>
>>> >> In my model MachineModel I don't have an automatic name field.
>>> >> Instead I
>>> >> provided my own
>>> >>
>>> >>   def name
>>> >>     "#{manufacturer.name} - #{model_of_machine}"
>>> >>   end
>>> >>
>>> >> since my name is comprised of both a field on the MachineModel and a
>>> >> field
>>> >> in the model Manufacturer an automatic find_by_name won't work so I
>>> >> had to
>>> >> create my own like so.
>>> >>
>>> >>   def self.find_by_name(query)
>>> >>     query = query.split(' - ').map {|term| "%#{term}%" }
>>> >>     sql =
>>> >>
>>> >> self.includes(:manufacturer).where(Manufacturer.arel_table[:name].matches(query[0]))
>>> >>     sql =
>>> >>
>>> >> sql.where(MachineModel.arel_table[:model_of_machine].matches(query[1])) 
>>> >> if
>>> >> query[1]
>>> >>     sql.first
>>> >>   end
>>> >>
>>> >> Note I split on the - this time because my name uses it to separate
>>> >> the
>>> >> two fields.  This will be a problem if a manufacturer name has a dash
>>> >> in it.
>>> >> (don't know a good way to avoid that.
>>> >>
>>> >> This was all required because of the name-one the Bryan helped me
>>> >> with.
>>> >>
>>> >> In my Machine form I have
>>> >> <machine-model-view:>
>>> >> <name-one complete-target="&@machine" completer="select_model"/>
>>> >> </machine-model-view:>
>>> >>
>>> >> This create a text box with auto complete which calls the
>>> >> autocompleter in
>>> >> the machine controller
>>> >>
>>> >> autocomplete :select_model do
>>> >>       hobo_completions :name, MachineModel.scoped()
>>> >> end
>>> >>
>>> >> This in turn calls the name_contains in MachineModel
>>> >>
>>> >>   def self.name_contains(query)
>>> >>     query = query.split.map {|term| "%#{term}%" }
>>> >>     sql =
>>> >>
>>> >> self.includes(:manufacturer).where(Manufacturer.arel_table[:name].matches(query[0]))
>>> >>     sql =
>>> >>
>>> >> sql.where(MachineModel.arel_table[:model_of_machine].matches(query[1])) 
>>> >> if
>>> >> query[1]
>>> >>     sql
>>> >>   end
>>> >>
>>> >> Note since the name was defined to return the manufacture -
>>> >> machine_model
>>> >> it's that string that is used to save the machine record.  When saving
>>> >> the
>>> >> new machine record it needs to find the corresponding machine_model
>>> >> record
>>> >> to get it's id.  Thus the need for the find_by_name I began with.
>>> >>
>>> >> Hope that name some sense, for when I try this again in 6 months and
>>> >> forget all the details other than "I did that once before:.
>>> >>
>>> >> Bob
>>> >>
>>> >> On Wednesday, October 10, 2012 9:56:26 AM UTC-4, Bob Sleys wrote:
>>> >>>
>>> >>> Thank you very much.
>>> >>>
>>> >>> FYI though this could probably be improved this is what I ened up
>>> >>> with in
>>> >>> my model
>>> >>>
>>> >>>   def self.manufacturer_model_contains(query)
>>> >>>     query = query.split.map {|term| "%#{term}%" }
>>> >>>     sql =
>>> >>>
>>> >>> self.includes(:manufacturer).where(Manufacturer.arel_table[:name].matches(query[0]))
>>> >>>     sql =
>>> >>>
>>> >>> sql.where(MachineModel.arel_table[:model_of_machine].matches(query[1])) 
>>> >>> if
>>> >>> query[1]
>>> >>>     sql
>>> >>>   end
>>> >>>
>>> >>> Bob
>>> >>>
>>> >>> On Wednesday, October 10, 2012 3:36:57 AM UTC-4, Bryan Larsen wrote:
>>> >>>>
>>> >>>> On Tue, Oct 9, 2012 at 3:09 PM, Bob Sleys <[email protected]> wrote:
>>> >>>> > Ok getting closer
>>> >>>> >
>>> >>>> > Now I getting the following error
>>> >>>> >
>>> >>>> > undefined method `manufacturer_model_contains' for
>>> >>>> > #<ActiveRecord::Relation:0x00000006c13350>
>>> >>>> >
>>> >>>> >
>>> >>>> > Do I need to add a method to my model to handle it?  If so what
>>> >>>> > would
>>> >>>> > it
>>> >>>> > look like.  IE is it doing to search for the query string?
>>> >>>>
>>> >>>> That's right.
>>> >>>> http://cookbook.hobocentral.net/manual/scopes#_contains
>>> >>>>
>>> >>>> You can do it with:
>>> >>>>
>>> >>>> def self.manufacturer_model_contains(query)
>>> >>>>
>>> >>>>
>>> >>>> self.includes(:manufacturer).where(Manufactuer.arel_table[:name].matches(query))
>>> >>>> + self.model_of_machine_contains(q)
>>> >>>> end
>>> >>>>
>>> >>>> Note how I'm using AREL for the first clause.   That way it will
>>> >>>> automatically switch to ILIKE in postgres.
>>> >>>>
>>> >>>> One thing the above doesn't do is split your query: if the user
>>> >>>> supplies a search for both the model & manufacturer, it will fail.
>>> >>>> This shows how to do that:
>>> >>>>
>>> >>>>
>>> >>>>
>>> >>>> http://stackoverflow.com/questions/4027276/help-with-rails-active-record-querying-like-clause
>>> >
>>> > --
>>> > You received this message because you are subscribed to the Google
>>> > Groups
>>> > "Hobo Users" group.
>>> > To view this discussion on the web visit
>>> > https://groups.google.com/d/msg/hobousers/-/nJZd8cpOMmsJ.
>>> >
>>> > 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/hobousers?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Hobo Users" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/hobousers/-/e50F-SeLgRMJ.
>
> 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/hobousers?hl=en.

-- 
You received this message because you are subscribed to the Google Groups "Hobo 
Users" 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/hobousers?hl=en.

Reply via email to