2013-01-02 32 views
2

我有一個頁面呈現一個列表Ideas。每個項目旁邊都有一個聲明按鈕。 應該發生的是用戶單擊聲明按鈕,Idea#claim控制器操作運行,並且聲明按鈕變暗。嘗試在Rails中首次使用Ajax:控制器呈現空白文檔?

什麼其實發生是......什麼都沒有。甚至沒有Rails錯誤頁面,這就是我被卡住的原因。相關片段遵循:

的routes.rb

resources :ideas do 
    collection do 
     post 'claim' 
    end 
    end 

ideas_controller#權利要求

def claim 
    @idea = Idea.find(params[:idea_id]) 
    current_user.claim(@idea) 
    respond_to do |format| 
     format.js { render :nothing => true } 
    end 
    end 

_idea.html.erb局部

<span class="idea-actions" id=<%="idea"+idea.id.to_s%>> 
    <%= link_to "Claim", {method: "post", action: "claim", idea_id: idea.id}, {class: 'claim', remote: true} %> 
</span> 

ideas.js.coffee

$ -> 
    $('.claim').bind 'ajax:success', -> 
    alert 'Ajax success!' 

這絕對是我第一次嘗試做這樣的事情,和我的CoffeeScript/JS是幾乎不存在。任何意見或指針將不勝感激。

編輯1:從的application.js到ideas.js.coffee移至代碼,切換使用的形式向button_tolink_to。上面代碼中顯示的更改。現在,當我點擊鏈接時,絕對沒有任何反應。仍然沒有快樂! :\

回答

0

嘗試移動remote: truebutton_to

<%= button_to "Claim", {action: "claim", idea_id: idea.id}, {remote: true, class: 'btn btn-small claim'} %> 

http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-button_to

+0

我做到了(並改爲李nk_to,並做了一些其他更改),但它仍然無法正常工作。你可以看看上面的代碼更改,看看你是否有任何其他的見解?謝謝! – ezuk

+0

啊!我必須將POST操作移動到HTML選項!我想我現在走在正確的軌道上! – ezuk

0

html_options部分修改了button_to更清潔:

<%= button_to "Claim", claim_ideas_path(id: idea.id, format: 'js'), remote: true %> 

應該這樣做..

相關問題