2011-07-14 10 views
3

したがって、私はRailsコードで2つのフォロー/アンフォローフォームを持っています。これは、このRails 3で.ajaxを使用して静的部分をレンダリングする

<%= form_tag({:controller => 'profile', :action => 'unfollow_topic' }) do %> 
    <%= hidden_field_tag :topic_id, @topic.id %> 
    <button class="question_button" type="submit">Unfollow</button> 
<% end %> 

と、このようなものです:

<%= form_tag({:controller => 'profile', :action => 'follow_topic' }) do %> 
<%= hidden_field_tag :topic_id, @topic.id %> 
<button class="question_button" type="submit">Follow</button> 
<% end %> 

そして、私はこのJavaScriptコードがあります。

<script type="text/javascript"> 
    $(function(){ 
    $('#follow form').submit(function(e) { 
     $.ajax({ 
     url: this.action, 
     type: 'POST', 
     data: $(this).serialize(), 
     success: function(response){ $('#follow').html(response); } 
     }); 
    return false; 
    }); 
    }); 
</script> 

を私の質問は、私は従う」私のコントローラからの適切なを返すことができる方法です/ unfollow "を返します。返されたレスポンスに置き換えられます。

私が現在持っていることはこれですが、動作しているようですしません:ページ全体をレンダリングする場合

respond_to do |format| 
    format.html { redirect_to('/' + topic.type + '/' + topic.uri) } 
    format.js { render :partial => 'unfollow_topic' } 
    end 

しかし、その代わりに、私はそれが実際にformat.htmlない形式に対応しています信じています。どんなアイデアですか?

+0

あなたの '_unfollow_topic.js.erb' ファイルには何ですか?あなたは、すべてのものを取り除き、いくつかの警告のJavaScriptを入れてみましたか? 'alert("こんにちは! ");'それは、あなたが部分的に戻ってくるかどうかを伝えるかもしれません。 – ipd

+0

通常、ajaxリクエストはページの一部を更新するために使用されます。あなたの質問から理解しているように、Ajaxリクエストで全ページを更新したいと思いますか? – Bohdan

+0

また、この要求であなたのログのチャンクを投稿してください。 – Bohdan

答えて

5

はJavaScript:

<script type="text/javascript"> 
     $(function(){ 
     $('#follow form').submit(function(e) { 
      $.ajax({ 
      url: this.action, 
      type: 'POST', 
      data: $(this).serialize(), 
      dataType: 'html' 
      success: function(response){ $('#follow').html(response); } 
      }); 
     return false; 
     }); 
     }); 
    </script> 

コントローラ:

respond_to do |format| 
    format.html do 
     if request.xhr? 
     render :partial => 'unfollow_topic' 
     else 
     redirect_to('/' + topic.type + '/' + topic.uri) 
     end 
    end 
end 
+0

私のために働いた、ありがとう=) –

+0

thxジョニーは私のために働いた:) –

関連する問題