<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-167  評論-65  文章-0  trackbacks-0

    rails2.0之前類庫里已經封裝了自動完成功能,rails2.0以后被分離了出來,作為插件使用.

    插件作用:能夠實現自動完成 和 自動提示 功能

    我的環境:ruby1.8.6 + rails 2.1.0

    效果預覽:

    image

    image

    使用案例一:(簡單的使用)

    1,下載插件

     

    (1),直接到網站上下載 http://github.com/rails/auto_complete/tree/master

    (2),在項目中下載,進入項目目錄 輸入 ruby script/plugin auto_complete 自動安裝插件到項目下,默認是從http://dev.rubyonrails.com/svn/rails/plugins 站點下載的,所以完整的下載路徑是

    ruby script/plugin install http://dev.rubyonrails.com/svn/rails/plugins/auto_complete/

    這里可以利用 ruby script/plugin list 查看有哪些插件可以下載

    image

    2,直接按照插件的 readme 操作(請查看插件的readme)

    # Controller
    class BlogController < ApplicationController
    auto_complete_for :post, :title #post對應著model(即表),title對應著表的一個字段
    end

    # View
    <%= text_field_with_auto_complete :post, title %>

    3,在layouts下 新建一個blog.rhtml,把下面代碼包括進來

    <%= javascript_include_tag :defaults %>

    4,如果到這里你還是沒有成功的話,建議在controller中添加

    skip_before_filter :verify_authenticity_token, :only => [:auto_complete_for_post_title] #我做的時候就是加了這個skip filter的,不然運行不穩定

    5,ok....success!

    案列二:(加一些約束條件)

    其它步驟基本不變,可以在model中指定顯示的條數和字段 什么的

    eg:

    Model中:

    class Fruit < ActiveRecord::Base
    # 定義一個查詢方法,
    def self.find_fruit_by_part(part)
    # 查詢出所有name匹配part的水果實體,最多顯示5條
    Fruit.find(:all,    :conditions => ["name LIKE ?", "%" + part + "%" ],:limit => 5);
    end
    end

    Controller中:

    class FruitController < ApplicationController

    skip_before_filter :verify_authenticity_token, :only => [:auto_complete_for_user_fruit] 
    def index
    end

    def auto_complete_for_user_fruit    
    begin
    fruit = params[:user][:fruit]
    rescue
    # 如果不能正常取得請求參數,給一個默認參數
    fruit = "an"
    end     
    @results = Fruit.find_fruit_by_part(fruit);    
    render :inline => "<%= auto_complete_result @results, 'name' %>"
    end

    end

    view中:

    <h3>測試自動完成功能</h3>
    <p>
    <%= text_field_with_auto_complete :fruit, :name %>
    </p>

    案列三:添加css樣式

    css:

    .useraddress{
    font-size:12px;
    color:#628B24
    }

    controller:
    class MessageController < ApplicationController

    skip_before_filter :verify_authenticity_token, :only => [:auto_complete_for_message_to]

    def auto_complete_for_message_to()
    user_name = params[:message][:to]
    @customers = Customer.find(:all , :conditions=>"name like '%"+user_name.downcase+"%'")
    render :partial => 'username'
    end

    end

    view:

    new.rhtml

    auto_complete 自動提示:<br/><br>
    <%= text_field_with_auto_complete 'message', 'to',{}, :skip_style => false %>

    _username.rhtml

    <ul class="allusers">
    <% for customer in @customers do %>
    <li class="thisuser">
    <div class="username">
    <%=h customer.name %>
    </div>
    <div class="useradd">
    <span class="useraddress">
    <%=h customer.address %>
    </span>
    </div>
    </li>
    <% end %>
    </ul>

    案列源碼下載:

    http://www.namipan.com/d/080744d037c133836019281306a7d90e1e546d8a3d970100

    ref:

    http://share-facts.blogspot.com/2009/02/autocompleter-example-in-ruby-on-rails.html
    http://jbf034.javaeye.com/blog/215429

    續:

    如果想修改默認的auto_complete的css樣式,到auto_complete_macros_helper.rb文件下找到auto_complete_stylesheet方法修改即可,我修改后的css

    image



    write by feng
    posted on 2009-03-31 16:21 fl1429 閱讀(1125) 評論(0)  編輯  收藏 所屬分類: Rails
    已訪問數:
    free counters
    主站蜘蛛池模板: 国产精品免费久久久久电影网| 国产产在线精品亚洲AAVV| 视频免费在线观看| 亚洲午夜福利精品久久| 国产黄色片免费看| 久久被窝电影亚洲爽爽爽| 国产中文字幕在线免费观看| 国产成A人亚洲精V品无码| 国产自国产自愉自愉免费24区| 男女拍拍拍免费视频网站| 久久福利资源网站免费看| 亚洲男女性高爱潮网站| 亚洲AV成人片无码网站| 日本一区免费电影| 亚洲毛片免费观看| 成人特黄a级毛片免费视频| 国产成人 亚洲欧洲| 亚洲国产日韩成人综合天堂| 国产乱妇高清无乱码免费| 亚洲s色大片在线观看| 97青青草原国产免费观看| 亚洲av无码一区二区三区天堂古代| 成年女人毛片免费观看97| 亚洲第一极品精品无码久久| 久久久国产精品无码免费专区| 国产亚洲精品免费| 中文字幕在线观看亚洲视频| 麻豆精品国产免费观看| 亚洲欧洲自拍拍偷午夜色| 国产无遮挡吃胸膜奶免费看视频 | 国产又粗又猛又爽又黄的免费视频| 伊人久久五月丁香综合中文亚洲| 免费一级做a爰片久久毛片潮喷| 亚洲精品视频在线播放| 成人一a毛片免费视频| 麻豆69堂免费视频| 亚洲视频一区二区三区| 久久免费公开视频| 亚洲中文字幕无码中文| 亚洲精品国自产拍在线观看| 久久国产色AV免费看|