我想要得到一個link_to顯示通過jquery ajax部分,但似乎無法讓它的工作(編輯:返回空白屏幕),我'我不知道我錯過了什麼。任何幫助,將不勝感激。Rails 3 - link_to調用部分使用jquery ajax
我想點擊鏈接「預覽窗口小部件」,並把它在div 預覽顯示_widget.html.erb。
從我的理解鏈接「預覽窗口小部件」應該叫的動作DEF preview_widget這就要求preview_widget.js.erb然後呈現局部_widget.html.erb在div。
編輯:更新按照伊格禮建議
show.html.erb
<%= link_to "Preview Widget", :action => 'preview_widget' , :id => @widget.id, :remote => true %> %>
<div id="preview"></div>
鏈接widget_controller.rb
def preview_widget
respond_to do | format |
format.js {render :layout => false}
end
end
preview_widget.js。呃b
$("#preview").html("<%= escape_javascript(render(:partial => "widget", :locals => { :widget => @widget})) %>");
_widget.html.erb
<% @widget.videos.each do |video| %>
<h3><a href='#'><%= video.name %></a></h3>
<div>
<object height='316' width='540'>
<embed style='border: 1px solid #333333;' height='316' width='540' allowfullscreen='true' allowscriptaccess='always' type='application/x-shockwave-flash' src='<%= video.url %>'>
</object>
</div>
<% end %>
的routes.rb
match 'preview_widget' => 'widgets#preview_widget'
感謝。我在代碼中添加了:remote => true並修復了widget-link-#{@widget.id}。當我點擊它時,鏈接現在是「http:// localhost:3000/preview_widget?id = 1&remote = true」我得到空白頁面了嗎? – pagetribe
您使用了哪個版本的導軌?我假設你使用3. *當我建議添加「:遠程=>真」..作爲3.0開始,軌道使用不顯眼的javascipt方法來處理所有JavaScript相關的功能..如果你使用2. *。那麼你需要將link_to改爲remote_link_to,並且可以選擇刪除「:remote => true」。 –