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.

Reply via email to