6

そのため、いくつかのメッセージを含むページがあり、それぞれにそのメッセージの評価を変更 (改良) するリンクがあります。ユーザーがこのリンクをクリックすると、そのメッセージのデータベース内の対応する列の値を更新する AJAX 呼び出しが必要です。このリンクをクリックしても、何も表示されません。ページの更新や再読み込みはありません。

link_to remote: true を使用してこれを実行しようとしましたが、うまくいかないようです。この質問に関するオンラインのドキュメントはかなり不明確であり、Rails 2 と 3 の間の変更により、:with のようなものはサポートされなくなりました。

私はこれまでに持っているものをコピーしましたが、解決にはほど遠いことを知っています. データベースに渡す必要があるパラメーターに関しては、profile_id、message_id、および new_rating が必要です。

前もって感謝します!

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
4

1 に答える 1

7

ProfileController#refine_result最初にルートを設定する必要があります。何かのようなもの

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
于 2012-07-10T22:30:14.730 に答える