我正在尝试构建一个用户可以选择多个复选框的应用。 我需要构建一个动态查询来从数据库中获取数据,但是会出错。 这是我的动态查询控制器代码。
if params[:food_type] != nil
params[:food_type].each do |food_type|
query_string << ' OR ' unless query_string.empty?
query_string << 'food_type = ?'
query_values << food_type
end
end
wrev["wrev"] = SearchResult.where(query_string, query_values)
@pgresults << wrev
wrev = {}
respond_to do |format|
format.html
format.json { render json: @pgresults }
我收到错误,因为“准备好的语句无效(绑定变量的数量错误)。 我定义了
query_string = String.new
query_values = []
答案 0 :(得分:0)
你可以传递&#34; query_string&#34;作为&#34; query_values&#34;的一部分作为一个数组,请参阅method where documentation:
if params[:food_type] != nil
params[:food_type].each do |food_type|
query_string << ' OR ' unless query_string.empty?
query_string << 'food_type = ?'
query_values << food_type
end
end
query_values.unshift(query_string) #add the string at the beginning of the array
wrev["wrev"] = SearchResult.where(query_values) #passing the arrary with the query string and the values as just one array.
@pgresults << wrev
wrev = {}
respond_to do |format|
format.html
format.json { render json: @pgresults }