簡體   English   中英

Rails:link_to with:remote => true不起作用

[英]Rails: link_to with :remote => true not working

我正在嘗試實現類似於Stack Overflow上的投票系統。 (使用Rails 3)我希望在沒有頁面重新加載的情況下完成投票,所以我有這個代碼

link_to("/tags/#{tag.id}/upVote", :remote => true )

所以在我的/ views / tags目錄中,我有一個名為_upVote.js.erb的文件,我認為在單擊此鏈接時會調用該文件,但事實並非如此。 它試圖以HTML格式處理upVote,這是我得到的錯誤

缺少模板標簽/ upVote {:formats => [:html]

另外,這是我的路線文件中的內容

match "tags/:id/upVote" => "tags#upVote"

任何想法我怎么能讓這個工作?

如果您在空白的新頁面中收到此錯誤消息,則表示您的遠程調用不起作用,並且未通過Ajax請求進行調用。 您需要檢查您的布局是否正確加載了jQuery和jQuery Rails連接器: http//github.com/rails/jquery-ujs

然后使用Firefox + Firebug檢查該調用是否真的是一個Ajax調用。

我有同樣的問題。 為了解決這個問題,我跟着

最后,我必須這樣做

Require both jquery and jquery_ujs were in the application.js manifest.
//= require jquery
//= require jquery_ujs

畢竟,Rails ajax開始為我工作。

請參閱此帖子以獲得解決方案:

Rails form_for:remote => true不調用js方法

將rails環境更改為JQuery時,您可能會意外丟失jquery-ujs文件。

在rails應用程序根目錄中鍵入類似內容:

rails g jquery:install

然后,在application.html.erb添加該行

<%= javascript_include_tag :defaults %>

或明確(不要忘記單獨包含您的jquery):

<%= javascript_include_tag :rails, :application %>

[編輯:使用資產管道的Rails 3.1或更高版本]

使用gem jquery-rails (如上所述)並將以下行添加到app / assets / javascripts / application.js (如果它們不存在):

//= require jquery
//= require jquery_ujs

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM