1

我有一个简单的 rails 搜索表单,它将在表中选择 3 个不同等级的列上的等级。但我不能扩展复数等级。


餐桌食品:value1、rank_value1、value2、rank_value2、value3、rank_value3

查看 /foods/index.html:

<%= form_tag foods_path, :method => 'get' do %> 
  <p>
    rank_value1
    <%= text_field_tag :rvalue1, params[:rvalue1] %>
    <%= submit_tag "Search", :name => nil %>
 </p>
<% end %>

食物模型.rb:

def self.search(search) 
    if search 
      Food.where(["rank_value1= ?", "#{search}"])
    else
      Food.all
    end
end

控制器food_controller.rb:

def index
   @foods = Food.search(params[:rvalue1])
end

为了扩大两个等级,我尝试了下面的代码,但没有奏效。

查看 /foods/index.html:

<%= form_tag foods_path, :method => 'get' do %> 
  <p>
    rank_value1
     <%= text_field_tag :rvalue1, params[:rvalue1] %>
     <%= text_field_tag :rvalue2, params[:rvalue2] %>
    <%= submit_tag "Search", :name => nil %>
  </p>
<% end %>

食物模型.rb:

def self.search(search1,search2) 
    if search 
      Food.where(["rank_value1= ? and rank_value2=?", "#{search1}", "#    {search2}"])
    else
      Food.all
    end
end

控制器food_controller.rb:

def index
  @foods = Food.search(params[:rvalue1], params[:rvalue2])
end

关于在多列中搜索数据的任何建议?

4

1 回答 1

0

嘿,您可以使用 Ransack gem 搜索多个值。在这里你可以看到实现的视频教程和 github 链接。

github:https ://github.com/activerecord-hackery/ransack

视频:http ://railscasts.com/episodes/370-ransack

希望你只是在寻找这个。

于 2016-12-24T12:51:33.850 回答