2011-06-24 6 views
2

show.html.erb起こりません:JSテンプレートはレンダリングが、何もRailsの中で3.0.7

... 
<%= link_to "Start Retrieval", {:action => "retrieve"}, :remote => true %> 
<div id="notices"> 
     <%= render :partial => 'notice' %> 
</div> 
.... 

_notice.html.erb:

<div>Notice</div> 

retrieve.js.erb:

#alert('test') //=> does not work 
$('#notices').append("<% escape_javascript render :partial => 'notice' %>"); 

コントローラ:

def retrieve 
    respond_to do |f| 
     #f.js {render :js => "alert(typeof jQuery != 'undefined')"} #=> true 
     f.js {render :js => "retrieve"} #=> nothing happens 
    end 
end 

出力:

Started GET "/model/1/retrieve" for 127.0.0.1 at 2011-06-24 21:09:44 +0100 
    Processing by ModelController#retrieve as JS 
    Parameters: {"id"=>"1"} 
Completed 200 OK in 50ms (Views: 49.2ms | ActiveRecord: 0.0ms) 

あなたは直接モデルを必要としない動詞を取得見ることができるように、私は、テンプレートに@modelのVARを渡していませんよ。私はこれが単なる略記であり、物事に影響を与えてはならないという印象を受けている。私はこれについて間違っていますか?

答えて

1

あなただけを行うことができるはず:アクション(retrieve.js.erb)と同じ名前を持つjs.erbファイルをレンダリングします

respond_to do |f| 
    f.js {} 
end 

あなたはちょうどこのように、JSファイルに「検索」を有すると同等の、純粋なJavaScriptなどの文字列「検索」をレンダリングしているやっている:

&ltjavascript> 
retrieve 
</javascript> 
+0

おかげで、それが働いています。 – Cookies

関連する問題