1

実際にjs.erbへの変数パスを取得できる場所は次のようになります。

application.jsのコントローラーに1つのメソッドcreateがあり、Ajaxの投稿があり、次にcreate.js.erbがあります。

作成フォームには、2つのhidden_​​field_tagがあります。create.js.erbでは、ここでajaxの成功が投稿され、アクションが実行されますが、hidden_​​fieldデータにアクセスして、成功時に特定のアクションを実行するロジックを実行するにはどうすればよいですか?

これは、jsが成功したときに、処理するアクションを決定するために2つの異なるアクションを取得したためです。js.erbは実際にどのように機能しますか?また、application.jsのフォームデータにアラートを送信すると、jsは完全に機能していますが、アラートが表示されません。何か案が?

$(document).ready(function() {
  $("#new_answer").submit(function() {
    $.post(this.action, $(this).serialize(), null, "script");
    alert("you are submitting" + $(this).serialize()); //it dint work but it did post
    return false;
  })
})
4

1 に答える 1

3

待ってください。これを行うときは、:controller => "months"および:action=>"march"としましょう。

つまり、$(this).action()は「/months/march」を返します。

これはurlに保存され、以下のpostメソッドでそのurlをヒットすると、フォーム要素はparamsハッシュの「months」コントローラーの「march」アクションで使用できます。

これで、「結果」のjs変数で、paramsハッシュ全体が使用可能になります。これは実際にアラートを出していることです。

months_controller.rb

def march

  render :text => params

end

application.js

$("form#new_answer").submit(function() {  

          var data = $('form#new_answer').serialize();

          var url = $(this).action();

           $.post(url ,data, function(result){

            alert(result);

            });        

           return false;

          });
于 2013-03-14T09:47:00.523 に答える