0

私はremote trueコントローラーへのajax送信を実行するために使用しようとしています。コントローラーは作成アクションを実行し、ajaxの成功時にJavaScriptを実行して行を削除します。

これは非常に単純に思えますが、Rails がそれを困難にしています。

私のセットアップは次のように終了しました:

= form_tag modifications_url, class: "inline", remote: true do |f|
  = hidden_field_tag :id, modification.model.id
  = submit_button "Reject", class: 'btn btn-danger'

Modifications_Controller

class ModificationsController < NestedController
  belongs_to :app_group, :app, :organization
  respond_to :html, :js

  def index
    @modifications = ModificationDecorator.decorate(get_modifications).group_by(&:what_was_modified)
  end

  def create
    @modification = Modification.find(params[:id])
    authorize!(:approve, @modification)
    if params[:resolution] == 'accept' 
      result = @modification.accept(current_user, params[:reason])
    elsif params[:resolution] == 'reject' 
      result = @modification.reject(current_user, params[:reason])
    end
  end

今-私が読んでいたドキュメントによると、アクション(作成)と同じ名前の変更ビューフォルダー内に.js.erbファイルを配置することにより、成功したajax呼び出しに続いてそのコードを実行する必要があります。

だから私のcreate.js.erbファイルで私はアラートを試しました

alert('testing')送信ボタンを押すと実行されます! わーい!

しかし、アラートを交換すると、クリックしたcssクラスを参照しないなどのconsole.log($(this))ワイルドな結果が得られます。window

ここで何か間違ったことをしていますか?前もって感謝します。

4

0 に答える 0