2

のリストをレンダリングするページがありますIdeas。各アイテムの横に [請求] ボタンがあります。ユーザーが[Claim] ボタンをクリックすると、コントローラーIdea#claimアクションが実行され、[Claim] ボタンが暗くなります。

実際に起こることは... 何もありません。Rails のエラー ページすら表示されないため、行き詰っています。関連するスニペットは次のとおりです。

ルート.rb

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

idea_controller#claim

  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>

アイデア.js.コーヒー

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

このようなことを試みるのはこれが初めてであり、私の CoffeeScript/JS は事実上存在しません。アドバイスや指針をいただければ幸いです。

編集 1:コードを application.js から idea.js.coffee に移動し、 to を使用button_toしてフォームを切り替えましたlink_to。上記のコードに示されている変更。現在、リンクをクリックしても何も起こりません。まだ喜びはありません!:\

4

2 に答える 2

0

の部分に移動remote: trueしてみてくださいhtml_optionsbutton_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

于 2013-01-02T15:25:42.347 に答える
0

button_to をよりクリーンに変更しました。

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

それはそれを行う必要があります..

于 2013-01-02T15:50:34.080 に答える