2011-04-14 4 views
1

私はlink_to:remoteを使用してHTMLのdiv要素の1つを更新しています。これは単なる初心者のコードです。ただし、リンクをクリックしても更新は行われません。ここでは、コードは次のようになります。link_to:remote-Rails 3の使用に関する問題

class SampleController < ApplicationController 
    def updater 
     render :text => Time.now 
    end 
end 

これはlist.html.erbです:だから上の

<script type = "text/javascript" src = "/javascripts/prototype.js"> 
<%= link_to "Hello Testing", 
    :update => "test_id", 
    :url => {:action => 'updater'}, 
    :remote => true 
%> 
<div id="test_id"></div> 

へのリンク "ハローテスト"、ブラウザの変更でURLをクリックしてください: http://localhost:3000/samples?remote=true&update=response_id&url[action]=updater

ただし、現時点に設定しようとしている要素のdivは、UIでは発生しません。ここで問題になるのは何ですか?

routes.rbを::http://pastebin.com/wmKsa1DD生成 HTMLコード:Firebugの中http://pastebin.com/stU3FpL8 HTML応答:http://pastebin.com/WjsB7zAh

url_forを使用して動作を変更しないでポストを更新しました


+0

リンクのために生成されたHTMLコードを調べましたか? –

+0

はサンプルリソース – fl00r

+0

のルートを表示しています:urlオプションはリンクに意味がありません: http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to –

答えて

0

1:

は(jqueryの)ようになり、あなたのdivを更新する "方法をレール" またrails.jsファイルを含める必要があります。普通のレールには、このようになります:

<%= javascript_include_tag :defaults %> 

2:updater_samples_pathまたは[:updater, :samples]

3:あなたはあなたのルートを表示する必要があります私は、URLのため、このネーミングを使用することを好みます。 updater方法はないGETメソッドを使用している場合、あなたはそれを定義する必要があります。

<%= link_to "Hello Testing", :update => "test_id", updater_samples_path, :method => :put, :remote => true %> 

4:使用FirebugのをあなたのAJAXの応答にSE。あなたは簡単にあなたのアプリをデバッグすることができます。また、私たちの応答を表示することができますので、より適切にリンクを作成していないように状況を理解してください。

1

なurl_for使用してください:

<%= link_to "Hello Testing", url_for(:action => :updater), 
     :update => "test_id", :remote => true %> 

私は100%わからないんだけど、私はないと思う:更新がRails3は今、主UJSに依存するため、仕事に行くされています。

$('div#test_id').bind('ajax:complete', function(event, xhr) { 
    $(this).html($.parseJSON(xhr.responseText)); 
}) 
関連する問題