Ruby on rails 4 基于用户复选框选择的动态查询创建
我试图建立一个应用程序,用户可以选择多个复选框。 我需要构建一个动态查询来从数据库中获取数据,但获取错误。 这是我的动态查询控制器代码Ruby on rails 4 基于用户复选框选择的动态查询创建,ruby-on-rails-4,activerecord,Ruby On Rails 4,Activerecord,我试图建立一个应用程序,用户可以选择多个复选框。 我需要构建一个动态查询来从数据库中获取数据,但获取错误。 这是我的动态查询控制器代码 if params[:food_type] != nil params[:food_type].each do |food_type| query_string << ' OR ' unless query_string.empty? query_string << 'food_type =
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 }
您可以将“查询字符串”作为“查询值”的一部分作为一个数组传递,请参见:
如果参数[:食物类型]!=无
参数[:食物类型]。每个do |食物类型|
查询字符串
query_string = String.new
query_values = []
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 }