错误:Ruby on Rails的3
我有工作正常使用HTML中的form_tag,但是当我使用AJAX与远程=>真我收到此错误: - 我的终端日志显示: -错误:Ruby on Rails的3
Started GET "/" for 127.0.0.1 at 2010-11-01 01:19:49 +0000
Processing by HomepagesController#index as HTML
Homepage Load (0.6ms) SELECT "homepages".* FROM "homepages"
Rendered homepages/index.html.erb within layouts/application (23.0ms)
Completed 200 OK in 40ms (Views: 27.3ms | ActiveRecord: 0.6ms)
Error during failsafe response: incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string)
*那么cleaner.rb东西 负载则: -
Started GET "/homepages?utf8=%E2%9C%93&search=hom" for 127.0.0.1 at 2010-11-01 01:19:56 +0000
Processing by HomepagesController#index as JS
Parameters: {"utf8"=>"✓", "search"=>"hom"}
Homepage Load (0.5ms) SELECT "homepages".* FROM "homepages" WHERE (section LIKE '%hom%')
Rendered homepages/index.js.erb (2.9ms)
Completed in 19ms
在我index.js.erb的,我有: -
$("testsearch").update("<%= escape_javascript(render(@homepages))%>");
,并在我的控制,我有: -
def index
@homepages = Homepage.search(params[:search])
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @homepages }
format.js { render :layout => false }
end
在我看来
我有: - 它打印使用使用<%@ homepages.each表@homepages做|设为首页| %>没有被更新。
任何人有任何想法,为什么我得到这个错误。
我已经通过进入一个IRC聊天室(irc.freenode.net RubyonRails)和一个ProjectZen(人类在以太网的某个地方)破解了它,帮助我实现了它。
显然发生了什么事情是我跟随Ryan Bates做了很多非常棒的Railcast视频,但他建立在以前的Railcast上。因此,在他处理Ajax呼叫的205 Railscast中,他没有提到你必须拥有: -
format.js
在控制器中的动作。
他的xxxx.searchxxxxx
需要在控制器或模型中创建。
而且,当我做: -
<%= render(@homepages)%> <!-- (in his case <%= render(@products)%>) -->
渲染正在寻找一个部分叫做“_homepage”(而不是“主页”)(我甚至没有的部分,因此我得到了UTF8到ASCII错误)。
然后在“_homepage”中添加我的代码来呈现结果。
我现在在我的index.html.erb
中所做的工作是将<%= render(@homepages)%>
放在(div id = testsearch)中,代替我用于呈现@home页面的代码,然后将该代码放置在部分“_homepage”中。现在我可以使用“_homepage”进行html和Ajax调用。
目前我遇到了一个小问题,那就是将“@homepages”中的所有数据渲染的次数与记录数一样多。目前我不知道为什么,但至少Ajax调用正在工作。
缩进4个空格以突出显示代码 – s84 2010-11-01 02:21:54