每天一剂Rails良药之Live Search

这次我们看看Rails里text_field的auto_complete,即Live Search。

1,添加Recipe的Migration
class AddRecipes < ActiveRecord::Migration
  def self.up
    create_table :recipes do |t|
      t.column :name, :string
    end
  end

  def self.down
    drop_table :recipes
  end
end


2,添加SearchController
class SearchController < ApplicationController
  auto_complete_for :recipe, :name
end

这里的auto_complete_for :recipe, :name会告诉Rails自动生成一个auto_complete_for_recipe_name()方法,它将搜索匹配输入的文本的对象并渲染结果。

3,添加search.rhtml
<html>
    <head>
        <%= javascript_include_tag :defaults %>
    </head>
    <body>
    <h1>Search Recipes</h1>
        Name:<%= text_field_with_auto_complete :recipe, :name %>
    </body>
</html>

text_field_with_auto_complete这个Helper方法会在页面生成一些HTML和JavaScript,从而使得recipe的name域自动搜索和补全。
向数据库加几条数据并访问 http://localhost:3000/search/search看看效果吧!
如此简洁的几行代码就为我们添加Live Search功能,何乐而不为呢?

你可能感兴趣的:(JavaScript,html,UP,Rails,ActiveRecord)