创建搜索功能以使用'GET'方法搜索Sequel数据库

时间:2015-04-30 16:54:32

标签: javascript ruby database search sequel

我创建了一个index.erb文件,在该文件中,我有搜索栏的代码:

<nav>
  <div class="nav-wrapper">
    <form>
      <div class="input-field">
        <input id="search" type="search" placeholder="Search..." required>
        <label for="search"><i class="mdi-action-search"></i></label>
        <i class="mdi-navigation-close"></i>
      </div>
    </form>
  </div>
</nav>

最终我想让这个搜索栏搜索我的续集数据库。我想在app.rb文件中使用GET方法。但是,我有一些障碍。

第1部分 如何将文本(用户键入我的搜索栏)保存到一个变量中,然后我可以在我的GET方法中使用(在我的app.rb文件中)?换句话说,如何将用户输入的内容保存到搜索栏中?

第2部分 在我的app.rb文件中,调用我的get方法是否重要?

第3部分 我想使用.where()方法搜索我的数据库。在我的model.rb文件中,我定义了一个类Town。在该迁移中,我有一组数据。我想搜索那些数据。所以我猜我app.rb文件中的代码会是这样的(?):

@towns = Town.where(:name => @variable_from_part1)

使用我问题第1部分的变量,我将如何搜索我的续集数据库?换句话说,我如何在数据库中搜索用户输入的内容,然后在我的页面上显示结果?

谢谢!

1 个答案:

答案 0 :(得分:0)

第1部分 您可以在name字段中创建<input/>属性。所以它看起来像这样:

<input name="search" type="text" placeholder="Search..."/>

提交此输入的最基本方法是使用输入字段type=sumbit

<input type="submit" value="Search"/>

第2部分 你称之为GET方法并不重要。您可以使用一个,两个等方法搜索数据库。一种方法是使用get '/search' do(或类似的东西)将用户引导到带有搜索栏的网页。然后你可以让搜索栏action等同于get '/' do之类的不同根。您也可以在一个GET根目录下完成所有操作。

第3部分 然后在app.rb文件中,在GET根目录(get '/' do)下,您可以使用params[:search]保存输入到输入字段中的文本。

get '/' do
    @towns = Town.where(:name => params[:search])
end