控制器应该显示不同的页面,具体取决于使用 AJAX 按下的按钮,通过 POST 请求
# POST /site_device/1
def show_page
@site_device = SiteDevice.find(params[:id])
respond_to do |format|
format.js
format.json { STDERR.puts "JSON!"; render 'show_page.js.erb' }
end
end
控制器代码#show页面运行,并调用json视图模板(下)
<% STDERR.puts "got_here" %>
$('#device-data').html("<h1>Foo!</h1>" ).trigger('create');
我们知道上面的代码正在被调用,因为这些STDERR
行正在服务器上输出。
在浏览器 (Chrome) 上,我们可以使用控制台来测试视图模板中的代码是否正确运行——确实如此:进入$('#device-data').html("<h1>Foo!</h1>" ).trigger('create');
Google Chrome 控制台会导致 html 被重新渲染为“Foo!” 在正确的地方。
然而,这是令人困惑的一点。在服务器上执行的代码似乎没有在浏览器中接收到,或者如果是,它没有执行,或者没有呈现
有没有其他人有任何类似的问题/问题?