Rails 3.2.1 ruby​​ 1.9.3 qtip2试图用ajax获取动态内容并获得堆栈溢出

时间:2012-06-29 18:14:17

标签: jquery qtip2

我发现了几个与问题相关的问题,但是尽管复制了解决方案,但我无法让它发挥作用。例如Rails dynamic content in jQuery qTip2

处理进入控制器以产生内容,但它进入循环。

$('td.config_info_tip').qtip({
    content: {
        text: 'Loading',
        ajax: {
            url: 'config',
            data:   {
                "id": $(this).attr("id")
            },
            method: 'get'
        }
    },
    style: {
        classes: 'ui-tooltip-shadow ui-tooltip-rounded'
    }
});

在控制器中

def config
  id = params[:id]
  @device = Device.find_by_id(id)
  @devicecategory = DeviceCategory.find_by_id(@device.device_category_id)
  respond_to do |format|
    format.html { render layout: false}
  end
end

当它通过渲染时,它返回到配置函数,循环直到它溢出并且我得到

SystemStackError (stack level too deep):
actionpack (3.2.1) lib/action_dispatch/middleware/reloader.rb:70

我有另一个qtip做类似的事情工作正常 - 我可以看到的差异是我传递的数据不起作用。另一个微妙之处在于带有提示不起作用的页面本身是用jquery呈现的,因此提示的js代码在页面上,而工作的js代码在$(文档).ready中功能。我很想知道这出错的地方。

我已经尝试取出respond_to并且只是

render layout: false

这个有效:

 $('img#priceinfo').qtip({
    content: {
        text: 'Loading',
        ajax: {
            url: 'pricing',
            type: 'GET'
        }
    },
    style: {
        classes: 'ui-tooltip-shadow ui-tooltip-rounded'
    }
  });

和控制器

def current
  @d = Date.today
   # ought to check that we have prices defined
  @price = Price.where("effective_from < ?", @d).order("effective_from desc").first
  render layout: false

end

任何想法 - 它现在困扰我几个小时?

1 个答案:

答案 0 :(得分:0)

我想知道原因,但是将控制器中方法的名称从config更改为device_config可以解决问题。