Thank you so much, it's working great! I also found that in the
official Rails 3 guides, but I didn't know that I have to look for the
join method.
Now I am using the following code, just for case that anybody else
has the same issue:
class Project < ActiveRecord::Base
has_many :tasks
validates_presence_of :name
def self.search(search)
if search
joins(:tasks).where('name LIKE ?', "%#{search}%") #Rails 3
else
find(:all)
end
end
end
On 6 Jul., 17:37, Frederick Cheung <[email protected]> wrote:
> On Jul 6, 2:57 pm, Sebastian <[email protected]> wrote:
>
>
>
>
>
>
>
>
>
> > Hi,
>
> > I am using this code from railscast for searching in my
> > activerecords:http://railscasts.com/episodes/37-simple-search-form
>
> > There is this method in the 'Product'-Model, which is searching for
> > the product name:
>
> > class Project < ActiveRecord::Base
> > has_many :tasks
> > validates_presence_of :name
>
> > def self.search(search)
> > if search
> > find(:all, :conditions => ['name LIKE ?', "%#{search}%"]) #Rails
> > 2
> > where('name LIKE ?', "%#{search}%") #Rails 3
> > else
> > find(:all)
> > end
> > end
> > end
>
> > My question is now, how can I search for products that have a given
> > task name. Task is a nested attribute for Product. I only use one of
> > the search line above. The second one is only possible with Rails 3.
>
> > I don't find anything about nested queries for activerecords with
> > 'find' or 'where'.
>
> You can do stuff like Project.joins(:tasks).where(:tasks =>
> {:some_column_on_tasks = 23}) (in rails to that would be
> find :all, :joins => :tasks, :conditions => {:tasks => {...}}
>
> If you use the string form of conditions you just need to prepend the
> table name to the column name, ie where('tasks.name like ...')
>
> Fred
>
>
>
>
>
>
>
> > I hope someone can help!
> > Sebastian
--
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.