我创建了一个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部分的变量,我将如何搜索我的续集数据库?换句话说,我如何在数据库中搜索用户输入的内容,然后在我的页面上显示结果?
谢谢!
答案 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