我开始用rails学习Ajax。 我有一个目录索引页面,如果找到类似的“section”结果,则会查询text_field_tag。
<h1>Catalogs</h1>
<label>Search by Section:</label>
<%=text_field_tag :section %>
<%= observe_field(:section,
:frequency=> 0.1,
:update=> "article_list",
:url=>{ :action => :get_article_list }) %>
<div id="article_list"></div>
def index
end
def get_article_list
@section = request.raw_post.split(/&/).first
@catalogList = "<ol>"
Catalog.find(:all, :conditions => ["section = ?", @section]).each do |catalog|
@catalogList += "<li><a href=\"" + catalog.url + "\">" + catalog.title + "</a></li>"
end
@catalogList += "</ol>"
render :text => @catalogList
end
request.raw_post呈现如下内容:
xml&authenticity_token=tgtxV3knlPvrJqT9qazs4BIcKYeFy2hGDIrQxVUTvFM%3D
所以我用
request.raw_post.split(/&/).first
获取节查询(“xml”)。它有效,但是如果查询有空格,我该怎么办? (比如“开源”)事实上,我的数据库中有开源部分,但是request.raw_post.split(/&amp; /)。首先渲染Open%20Source。我该怎么办呢?我是否必须使用全文搜索引擎来实现它,还是有另一种方式?
非常感谢您的解释!
答案 0 :(得分:1)
查看您的日志,在其中您将看到帖子和参数被传递。您不应该进行自己的查询字符串拆分。您应该能够使用params [:section]来获取发布数据。
正如你的评论所暗示的那样,缺少一些东西。您的observe_field需要告诉Rails帮助程序该做什么。退房:http://apidock.com/rails/ActionView/Helpers/PrototypeHelper/observe_field。无论如何,你会想做类似的事情:
observe_field(......#很多参数 :with =&gt; '部分' )
这应该会给你params[:section]
。