2012-07-10 21 views
5

私はいくつかのメッセージを持つページを持っています。それぞれのページには、そのメッセージのRATINGを変更(詳細化)するリンクがあります。ユーザーがこのリンクをクリックすると、そのメッセージのデータベース内の対応する列の値を更新するAJAX呼び出しが必要になります。このリンクをクリックすると、視覚的に何も起こりません。ページをリフレッシュまたはリロードしないでください。link_to remote:trueを使用してパラメータをレールに渡します

私はlink_to remote:trueを使用してこれを実行しようとしていましたが、動作させることができません。オンラインのドキュメンテーションは、この質問と、Rails 2と3の間の変更でかなり不明瞭です。:withはもうサポートされていません。

私はこれまでのことをコピーしましたが、解決策に近づくことさえできません。 データベースに渡す必要のあるパラメータに関しては、profile_id、message_id、new_ratingが必要です。

ありがとうございます!あなたが最初のProfileController#refine_resultのルートを設定する必要があり

show.html.haml

.status-bar 
    = link_to "", { action: :refine_result }, remote: true 

profile_controller.rb

... 

def refine_result 
    @refinement = ResultRefinement.new 
    @refinement.profile_id = params[:profile_id] 
    @refinement.message_id = params[:message_id] 

    @refinement.save 

    respond_to do |format| 
    format.html { render nothing: true } 
    format.js { render nothing: true } 
    end 
end 

result_refinement.rb

class ResultRefinement < ActiveRecord::Base 
    attr_accessible :profile_id, :message_id, :new_rating, :deleted 

    belongs_to :profile 
end 

答えて

6

match '/profile/refine_results' => 'profile#refine_results', :as => 'refine_results' 

ような何かそして、あなたは

.status-bar 
    = link_to "", refine_results_url(profile_id: 1, message_id: 100, new_rating: "awful"), remote: true 
+0

恐ろしいを使用することができます。パラメータを渡してデータベースに保存し始めました。 私がまだ抱えている唯一の問題は、ページのリダイレクトや変更を中止することです。 –

+0

別のjsファイルがajaxを上書きしているようです。だから私は、ajaxを引き継ぐのではなく、リンクをたどり続けたのです。 –

関連する問題