On Tue, May 7, 2013 at 1:08 AM, Maddy <[email protected]> wrote: > Hi Folks, > > My search fields, > > Firstname* > Lastname* > MI - Middle initial > State* > ID > Birthday > > when people will search John Bolton in any state for example AL (Alabama), > all John Bolton names in only AL will show up. > So if there are 3 John Bolton with different middle MIs, they will show, for > example > John A. Bolton > John W. Bolton > John O. Bolton and so on... > > I used this code in my model, But it show an error, > > def > self.search_my_new_contact(first_name,last_name,initial,inimate_id,state,dob) > find(:all, :include=>[:address_book], :conditions => ["'( LOWER > (address_books.first_name) LIKE ? AND LOWER (address_books.last_name) LIKE ? > AND LOWER (address_books.state_name) LIKE ?)' AND '(LOWER > (address_books.initial) LIKE ? OR LOWER (address_books.inmate_id_number) > LIKE ? OR LOWER (address_books.birthday) LIKE ?)'", > "#{first_name.downcase}","#{last_name.downcase}","#{initial.downcase}", > "#{inimate_id.downcase}", "#{state.downcase}","#{dob.downcase}"]) > end > > ActiveRecord::StatementInvalid in InimateLocatorsController#index > > Mysql2::Error: You have an error in your SQL syntax; check the manual that > corresponds to your MySQL server version for the right syntax to use near > '.state_name) LIKE 'ar'))' at line 1: SELECT `contact_books`.`id` AS t0_r0, > `contact_books`.`user_id` AS t0_r1, `contact_books`.`created_at` AS t0_r2, > `contact_books`.`updated_at` AS t0_r3, `contact_books`.`prison_id` AS t0_r4, > `contact_books`.`active` AS t0_r5, `address_books`.`id` AS t1_r0, > `address_books`.`prison_name` AS t1_r1, `address_books`.`first_name` AS > t1_r2, `address_books`.`last_name` AS t1_r3, > `address_books`.`inmate_id_number` AS t1_r4, `address_books`.`birthday` AS > t1_r5, `address_books`.`city` AS t1_r6, `address_books`.`state_id` AS t1_r7, > `address_books`.`zipcode` AS t1_r8, `address_books`.`street` AS t1_r9, > `address_books`.`user_id` AS t1_r10, `address_books`.`created_at` AS t1_r11, > `address_books`.`updated_at` AS t1_r12, `address_books`.`addressable_id` AS > t1_r13, `address_books`.`addressable_type` AS t1_r14, > `address_books`.`mobile_no` AS t1_r15, `address_books`.`avatar_file_name` AS > t1_r16, `address_books`.`avatar_content_type` AS t1_r17, > `address_books`.`avatar_file_size` AS t1_r18, > `address_books`.`avatar_updated_at` AS t1_r19, `address_books`.`address` AS > t1_r20, `address_books`.`gender` AS t1_r21, `address_books`.`fullname` AS > t1_r22, `address_books`.`prison_id` AS t1_r23, `address_books`.`state_name` > AS t1_r24, `address_books`.`image` AS t1_r25, > `address_books`.`registration_no` AS t1_r26, `address_books`.`initial` AS > t1_r27 FROM `contact_books` LEFT OUTER JOIN `address_books` ON > `address_books`.`addressable_id` = `contact_books`.`id` AND > `address_books`.`addressable_type` = 'ContactBook' WHERE ( ( LOWER > (address_books.first_name) LIKE 'remo' AND LOWER (address_books.last_name) > LIKE 'nandi' AND LOWER (address_books..state_name) LIKE 'ar')) > > Rails.root: /home/ashok/projects/textbehind > > Application Trace | Framework Trace | Full Trace > > app/models/contact_book.rb:23:in `search_my_new_contact' > app/controllers/inimate_locators_controller.rb:15:in `index' > > Request > > Parameters: > > {"utf8"=>"✓", > "search_contact"=>{"first_name"=>"remo", > "initial"=>"", > "last_name"=>"nandi", > "inimate_id"=>"", > "state"=>"AR", > "dob"=>""}} > > Show session dump > > Show env dump > > Response > > Headers: > > None > > > Please Advise. >
MySQL is complaining about the double dot in this section: WHERE ( ( LOWER (address_books.first_name) LIKE 'remo' AND LOWER (address_books.last_name) LIKE 'nandi' AND LOWER (address_books..state_name) LIKE 'ar')) But I don't see how it's getting that from your code: '( LOWER (address_books.first_name) LIKE ? AND LOWER (address_books.last_name) LIKE ? AND LOWER (address_books.state_name) LIKE ?)' I only see a single dot in address_books.state_name so I'm really not sure where the problem stems from... -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" 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]. For more options, visit https://groups.google.com/groups/opt_out.

