控制器应显示不同的页面,具体取决于使用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)上,我们可以使用控制台来测试视图模板中的代码是否正常运行 - 并且确实如此:在Google Chrome控制台中输入$('#device-data').html("<h1>Foo!</h1>" ).trigger('create');
会导致html重新呈现“Foo!”在正确的位置。
还有其他人有类似的问题/问题吗?
答案 0 :(得分:1)
为了猜测,如果你的ajax函数有dataType: 'JSON'
,它会收到但不会执行响应。如果设置dataType: 'script'
,则会执行响应。
如果不是答案,请发布你的ajax功能。