我发现了几个与问题相关的问题,但是尽管复制了解决方案,但我无法让它发挥作用。例如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
任何想法 - 它现在困扰我几个小时?
答案 0 :(得分:0)
我想知道原因,但是将控制器中方法的名称从config更改为device_config可以解决问题。