Ошибка при отказоустойчивом ответе: Ruby on Rails 3 - PullRequest
1 голос
/ 01 ноября 2010

У меня есть form_tag, который отлично работает с использованием html, но когда я использую 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

, на мой взгляд, у меня есть: - который печатает @homepages, используя таблицу, используя <% @ homepages.each do | homepage |%> который не обновляется.

У всех есть идеи, почему я получаю эту ошибку.

1 Ответ

1 голос
/ 07 ноября 2010

Я взломал его, зайдя в IRC-чат (irc.freenode.net RubyonRails), и ProjectZen (человек где-то в эфире) помог мне заставить его работать.

Видимо, чтопроисходило то, что я следил за Райаном Бейтсом, который делает много очень хороших видео Railcast, но он опирается на предыдущий Railcast.Поэтому в своем 205 Railscast, который имеет дело с вызовами Ajax, он не упомянул, что вы должны иметь: -

format.js в действии в контроллере.

Его xxxx.searchxxxxx необходимобыть создан в контроллере или модели.

И это, когда я сделал: -

<%= render(@homepages)%> <!-- (in his case <%= render(@products)%>) -->

Рендеринг искал частичную часть под названием "_homepage" (не "homepages") (я сделалдаже не было частичного, поэтому я получил ошибку UTF8 в ASCII).

А затем в "_homepage" я бы добавил свой код для отображения результатов.

То, что я сейчас сделал в своемindex.html.erb должен поместить <%= render(@homepages)%> в (div id = testsearch) вместо кода, который я использую для рендеринга @homepages, а затем поместить этот код в частичную "_homepage".Теперь я могу использовать «_homepage» для html и вызова Ajax.

В настоящий момент у меня есть небольшая проблема в том, что он рендерит все данные в «@homepages» столько раз, сколько числозаписей.На данный момент я не знаю почему, но по крайней мере Ajax-вызов работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...