私はいくつかのメッセージを持つページを持っています。それぞれのページには、そのメッセージの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
恐ろしいを使用することができます。パラメータを渡してデータベースに保存し始めました。 私がまだ抱えている唯一の問題は、ページのリダイレクトや変更を中止することです。 –
別のjsファイルがajaxを上書きしているようです。だから私は、ajaxを引き継ぐのではなく、リンクをたどり続けたのです。 –