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]<javascript:>> 
> 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]<javascript:>. 
>
> > To unsubscribe from this group, send email to 
> > [email protected] <javascript:>. 
> > 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/-/MI1JxH3XlJYJ.
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