Thanks again Fred.
NO, I am not asking for the author whose name is the exact string 
'name'.
"Name" is the attribute or column in the authors table which has name 
values like James, John, etc. The user will select a name, say John, 
then I am passing that name as a condition to the query.
After a submit button is clicked, the URL shows this:
http://localhost:3000/authors/show?author[name]=John&commit=Submit

I can't stick the name value in because it has to come dynamically to 
the controller. Name is not unique in the table

I am still looking for the correct syntax for this:
@authors = Author.find_by_sql ["SELECT * FROM authors WHERE name = ?",
 'author[:name]']



and this subselect:

@books = Books.find_by_sql ["SELECT * FROM books where title IN( SELECT
title FROM authors where name = ?", 'name')]

I can't find it in the Docs.
Please send me any pointers.
Thanks

Cypray











Frederick Cheung wrote:
> On Dec 8, 7:31�pm, Jay Mark <[EMAIL PROTECTED]> wrote:
>> Thanks for your help Fred. The wrong number of argument problem is gone.
>>
>> The queries are still not working.
>>
>> Using find_all_by_name give me "method not found error"
>>
> That should work as long as the argument you  pass it exists (and as
> long as Author has a column called name) , but from what you say below
> you don't have a local variable called name.
> 
>> This one below returns no data but gives no error. But it works fine
>> when I put it in mysql directly.
>>
>> @authors = Author.find_by_sql ["SELECT * FROM authors WHERE name = ?",
>> �'name']
>>
>> Also passing it in as author[:name] returns no data but gives no error,
>> just empty rows
>>
> Well you've asked for authors whose name is the exact string 'name'.
> Presumably you have a variable of some sort with the name you are
> searching for ? You should stick that in
> 
> 
>> @authors = Author.find_by_sql ["SELECT * FROM authors WHERE name = ?",
>> 'author[:name]']
>>
>> Without the single quote ('') around the 'name', I get "undefined local
>> variable" error.
>>
>> Does any one know what is wrong with my query?
>>
>> Also �Rails is rejecting the syntax of the subselect below:
>>
> You're closing the parens in the wrong place. what you pass to
> find_by_sql must be
> [ "A string with all the sql", all, the, substitutions, here]
> 
> take a look at the examples in the docs.
> 
> Fred

-- 
Posted via http://www.ruby-forum.com/.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" 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/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to