Hi everybody...
I'm getting crazy to understand how to make things working..
I have to use both Solr and rails Find to filter search result, and I
realized that the only option is to get the ids from the different
search results..and then intersect the array of the ids.
Once did this..I can't make find_all_by_id work passing the resulting
array as parameter, I have this:
----
In this way I get no error, but no results.
aut = params[:article][:author]
@aut = Article.find(:all, :conditions => {:author => aut})
from = params[:from][:date]
to = params[:from][:date]
@range = Article.find(:all, :conditions => {:date =>from..to})
query = params[:query]
@search = Article.find_by_solr(query).results
ids = Array.new
@aut.each { |item|
ids.push(
item.id) }
@range.each { |item|
ids.push(
item.id) }
@search.each { |item|
ids.push(
item.id) }
@temp = ids.to_set
@ids = @temp.to_a
@articles = Article.find_all_by_id([@temp])
----
using @articles = Article.find_all_by_id(@temp)
I got error saying:
Mysql::Error: Operand should contain 1 column(s): SELECT * FROM
`articles` WHERE (`articles`.`id` =
115,159,78,101,129,19,80,20,70,136,48,54)
----
using @articles = Article.find_all_by_id(@ids)
It seems to work, I get results, but they're wrong! :S
----
what's wrong? :S
Thanks