如何在加载show动作时通过ajax显示警告框

时间:2011-09-17 14:55:14

标签: jquery ruby-on-rails ajax

很抱歉这个新手问题,我正在尝试在加载我的画廊/节目视图时通过Ajax显示一个简单的警告框。 (在我想显示内容而不是此警告框之后)

到目前为止,这是我的代码:

galleries_controller.rb

  def show
    @gallery = Gallery.find(params[:id])

    respond_to do |format|
      format.js
      format.html # show.html.erb
    end
  end

的application.js

// Tell Rails to use .js
jQuery.ajaxSetup({
  'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")} 
})

$(document).ready(function(){

  // How can I load show.js.erb ?
  $('body').load() 

});

show.js.erb

alert('ajax works!');

我无法想象如何让它发挥作用。非常感谢你的帮助。

2 个答案:

答案 0 :(得分:2)

远程应用程序js中的所有内容

show.html.erb中的

<%= link_to "Get Gallery", gallery_url(@gallery), :remote => true %>

重新加载/画廊/ show /:id 点击链接

答案 1 :(得分:1)

当您从AJAX调用中点击show.js.erb时,

Rails返回Gallery#show(评估后)。因此,您可以使用jQuery.get获取返回的内容:

$.get({'gallery/show/some_id_number', dataType: script});

dataType: script属性将导致jQuery执行返回的内容(即评估的show.js.erb的内容)。