错误: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做|设为首页| %>没有被更新。

任何人有任何想法,为什么我得到这个错误。

+0

缩进4个空格以突出显示代码 – s84 2010-11-01 02:21:54

我已经通过进入一个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调用正在工作。