2010-11-01 84 views
0

用ajax我想更新我的DIV做一個搜索@homepages後: - $( 「testsearch」)更新(」 <%= escape_javascript(渲染(@homepages)% >「);在我的index.js.erb的AJAX搜索,使用Javascript,Rails的3

,因爲我得到一個內部服務器錯誤,不工作: - 故障安全響應期間 錯誤:不兼容的編碼正則表達式匹配(UTF-8正則表達式與ASCII-8BIT字符串)

任何人有任何想法,爲什麼我收到此錯誤。

作爲測試以下渲染確定。 $(「testsearch」)。update(「<%= escape_javascript(render:text =>'This is UJS')%>」);

回答

1

我已經通過進入一個IRC聊天室(irc.freenode.net RubyonRails)和一個ProjectZen(人類在以太網的某個地方)來破解它,幫助我實現它。

顯然發生了什麼事情是我跟隨Ryan Bates做了許多非常棒的Railcast視頻,但他建立在以前的Railcast上。因此,在他處理Ajax呼叫的205 Railscast中,他沒有提到你必須擁有: -

format.js在控制器中的操作。

他的xxxx.searchxxxxx需要在控制器或模型中創建。

而且,當我做: -

<%=渲染(@homepages)%>(在他的案件<%=渲染(@products)%>)

渲染一直在尋找一種部分稱爲「_homepage」(不是「主頁」)(我甚至沒有一個部分,因此我得到了UTF8到ASCII錯誤)。

然後在「_homepage」中添加我的代碼來呈現結果。

我現在在我的index.html.erb中做的是在(div id = testsearch)中放置<%= render(@homepages)%>來代替我用於呈現@home頁面的代碼,以及然後將該代碼放在部分「_homepage」中。現在我可以使用「_homepage」進行html和Ajax調用。

目前我遇到了一個小問題,那就是將「@homepages」中的所有數據渲染的次數與記錄數一樣多。 目前我不知道爲什麼,但至少Ajax調用正在工作。