rails json响应未呈现

时间:2012-11-12 15:15:02

标签: ruby-on-rails json

控制器应显示不同的页面,具体取决于使用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!”在正确的位置。

然而,这里是令人困惑的位。在服务器上执行的代码似乎没有在浏览器中接收,或者如果是,它没有执行,或者没有呈现

还有其他人有类似的问题/问题吗?

1 个答案:

答案 0 :(得分:1)

为了猜测,如果你的ajax函数有dataType: 'JSON',它会收到但不会执行响应。如果设置dataType: 'script',则会执行响应。

如果不是答案,请发布你的ajax功能。