我想让搜索字段在用户开始输入时开始输出结果。观察字段没有做任何事
这是我的看法:
<%= observe_field 'keyword',
:url => { :action=> 'search_results' },
:frequency => 0.5,
:update => 'results',
:loading => "$('.spinner').show()",
:complete => visual_effect(:slide_down, "results", :duration => 0.9),
:with => 'keyword' %>
<%= form_remote_tag :url =>{ :action => :search_results },
:update => "results",
:loading => "$('.spinner').show()",
:complete => visual_effect(:slide_down, "results", :duration => 0.9) %>
<fieldset>
<legend>Tutor Search.</legend>
<label for="searchItField">Keyword Search.</label>
<%= text_field_tag(:keyword) %>
<span id="Submit_search">
<span id="Submit_search_hover"><%= submit_tag "Search", :name => nil %></span>
</span>
</fieldset>
</form>
<div id="results">
<img class="spinner" id="ajax_spinner" src="../images/ajax-loader.gif" alt="Comment being processed" style="display: none" />
</div>
在我的控制器是这样的:
def search_results
keyword = params[:keyword]
@tutors = Tutors.find(:all,:conditions => ["category LIKE ?", '%' + keyword + '%'])
end
现在,如果你去http://avandata.net/tutor/tutors/search,然后在搜索栏中键入数学,然后点击提交它的工作原理。但是,观察字段在输入时不会执行任何操作。我一直试图弄清楚这一点。
这是我的开发日志的样子。
Here is my log/development Processing TutorsController#search (for 98.254.132.228 at 2010-07-30 09:29:52) [GET] Rendering tutors/search Completed in 5ms (View: 3, DB: 0) | 200 OK [avandata.net/tutor/tutors/search]
而对于提交搜索按钮,它看起来像这样在日志中:
Processing TutorsController#search_results (for 98.254.132.228 at 2010-07-30 13:28:22) [POST]
Parameters: {"authenticity_token"=>"KNsIfr69fDTVGEZnwQoyXhnnuK5ZP6QIwq/zHRVYWqQ=", "keyword"=>"math"}
[4;36;1mTutors Load (0.1ms)[0m [0;1mSELECT * FROM `tutors` WHERE (category LIKE '%math%') [0m
Rendering tutors/search_results
[4;35;1mTutors Columns (3.4ms)[0m [0mSHOW FIELDS FROM `tutors`[0m
Completed in 8ms (View: 2, DB: 4) | 200 OK [http://avandata.net/tutor/tutors/search_results]
你知道,如果有一个简单的方法来恢复到protoype – Alex 2010-07-30 22:05:30
@Alex我相信,你只需要更换jQuery和jrails JavaScript和这包括在布局(或网页)'<%= javascript_include_tag :默认%>' – bjg 2010-07-30 22:29:15