【问题标题】:Error during failsafe response: Ruby on Rails 3故障安全响应期间的错误:Ruby on Rails 3
【发布时间】:2010-11-01 01:51:31
【问题描述】:

我有一个使用 html 可以正常工作的 form_tag,但是当我将 ajax 与远程 => true 一起使用时,我收到了这个错误:- 我的终端日志显示:-

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

在我看来,我有:- 它使用 没有更新。

任何人都知道我为什么会收到此错误。

【问题讨论】:

  • 缩进 4 个空格以突出显示代码

标签: ruby-on-rails


【解决方案1】:

我通过一个 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 中所做的是将&lt;%= render(@homepages)%&gt; 放在 (div id = testsearch) 中,以代替我用来呈现@homepages 的代码,然后将该代码放在部分“_homepage”中.现在我可以将“_homepage”用于 html 和 Ajax 调用。

目前我有一个小问题,它渲染“@homepages”中的所有数据的次数与记录数一样多。目前我不知道为什么,但至少 Ajax 调用是有效的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-24
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    相关资源
    最近更新 更多