0

我发现了几个与该问题相关的问题,但尽管复制了解决方案,但我无法让它发挥作用。例如jQuery qTip2 中的 Rails 动态内容

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

$('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 代码在页面上,而有效的代码在 $(document).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

任何人有任何想法 - 它现在让我难倒了几个小时?

4

1 回答 1

0

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

于 2012-06-29T22:23:31.187 回答