2010-11-02 21 views
0

所以我試圖在用戶點擊提交按鈕後將新創建的帖子追加到列表中。然而,這個列表在我刷新頁面之前不會更新,所以我猜這個問題必須來自我的javascript代碼。無法在使用Ajax的Rails中追加帖子

在index.html.erb我把這個行:

<div class="posts"> 
    <%= render :partial => 'post', :collection=> @posts %> 
</div> 

在create.js.erb:

$(".posts"). 
    append("<%= escape_javascript(render :partial => "post", :object => @post)%>"); 

其餘部分應該罰款。

我是否需要將js代碼放入application.js中?

預先感謝您!

+0

您可以通過縮進4個空格來格式化代碼 – s84 2010-11-02 02:36:12

回答

1

確保你包括你的JavaScript庫

<%= javascript_include_tag :defaults %> 

需要在你的頭

+0

謝謝您的回覆!我在application.rb中包含了這個config.action_view.javascript_expansions [:defaults] =%w(jQuery jeditable rails應用程序),我認爲它應該可以達到同樣的目的。而我的銷燬javascript效果實際上起作用。所以我認爲不包括javascript標籤是不是問題? – JayX 2010-11-02 03:00:48

+1

如果它是一個特定的庫確保工作,否則如果它是默認和您的基本javascript/rails類型的東西正在工作,然後 – s84 2010-11-02 18:27:10

0

開始去查看你的development.log文件,以確保該方法調用合適的模板。在瀏覽器中打開Javascript控制檯並查找錯誤。在控制檯上也試用jQuery代碼,以確保代碼正常工作。

+0

謝謝!我在使用控制檯後發現了一個錯誤,所以我將「post」改爲「post」,並且我也意識到我的「posts」div沒有做任何事情。所以我給我的發佈表的類名爲「posts」,除了每​​次在控制檯中運行我的代碼時,都會發生任何事情,它會打印出<%= escape_javascript(render:partial =>'post',:object => @post)% >在桌子的盡頭。 – JayX 2010-11-02 03:56:36

+0

已啓動POST「/ posts」for 127.0.0.1 at Mon Nov 01 22:59:32 -0500 2010 PostsController#create as JS 參數:{「post」=> {「name」=>「test」, 「title」=>「test」,「content」=>「test」},「authenticity_token」=>「SQL」(0.3ms)INSERT INTO「posts」( ('test','2010-11-02 03:59:32.221059','test','test','2010-content','created_at','name','title','updated_at「)VALUES (0.0ms) 在12ms內完成了200 OK(查看:0.9ms | ActiveRecord:0.3ms)11-02 03:59:32.221059') 渲染文本模板 – JayX 2010-11-02 04:01:13