will_paginate gem在我的Oracle版本上被破坏了.paginate_by_sqlWillPaginate模块中的默认方法是在查询中插入额外的"AS"并使其失败.
代码本身很容易修复,但我不确定让Rails接受我的更改的最佳方法.
我不想更改gem本身的代码,因为这会使我的代码在其他机器上被破坏.
我尝试创建一个包含以下内容的lib/test.rb文件:
module WillPaginate
def paginate_by_sql
(my code goes here)
end
end
Run Code Online (Sandbox Code Playgroud)
并要求它来自environment.rb,但它没有接受我的更改.我也尝试过来自controllers/application.rb,但是再次提到我的更改.
暂时,我通过覆盖特定模型本身的方法来使其工作,但这有点像黑客,并且意味着我不能在该项目中的任何其他模型上使用它.
我确信有一个简单的方法可以做到这一点,但我没有运气跟踪它使用谷歌.
在尝试解析android上的xml文档时,我收到"SAXParseException:意外的文档结束"错误.
有问题的文件来自google weather api,但无论有问题的xml文件(只要xml有效),似乎都会抛出相同的错误,所以我怀疑这是我的方法的问题,而不是xml.
这是作为一个学习练习,所以我可能(希望)忽略了一些明显的东西=)
我通过在线验证器运行xml,然后它恢复正常.(不能告诉我它是否有效,因为我没有DTD,但我认为我不需要DTD来解析xml).
这是我用来尝试解析文件的代码:
private void refreshForecast()
URL url;
try {
url = new URL( "http://192.168.1.66:8000/google4.xml");
URLConnection connection = url.openConnection();
HttpURLConnection httpConnection = (HttpURLConnection)connection;
int responseCode = httpConnection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
InputStream in = httpConnection.getInputStream();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
// falls over here parsing the xml.
Document dom = db.parse(in);
}
} catch (ManyExceptions e) {
....
}
Run Code Online (Sandbox Code Playgroud)
产生错误的xml的缩减版本是:
<?xml version="1.0"?>
<xml_api_reply version="1">
<weather>
<forecast_information>
<city>Hamilton</city>
</forecast_information>
</weather>
</xml_api_reply>
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪是:
11-20 …Run Code Online (Sandbox Code Playgroud) 我正在将旧的rails应用升级到3.1.该应用程序非常有用,但我有一些需要更新的ajax功能.(如果它有任何区别我正在使用jquery和coffeescript)
所有现有的ajax功能都是使用render:updates编写的.例如
render :update do |page|
page.remove "financial_tran_offset_#{params[:ftof_id]}"
page.replace_html 'details', :partial => 'details', :locals => {:obj => @fire}
end
Run Code Online (Sandbox Code Playgroud)
我认为新的首选方法是使用respond_to?阻止处理js,但我不确定处理这些不同情况的最佳方法.
对于第一种情况(page.remove),我认为对于资产管道线,我应该在/ app/assets/javascripts /中有一个外部js来处理javascript端(例如page.remove)但是我不知道如何通过js文件的参数.我猜你可以这样做:
respond_to do |format|
format.js {:render :js => {:ftof => params[:ftof_id]}
end
Run Code Online (Sandbox Code Playgroud)
但我不知道你怎么能从js文件中选择它.这是将信息传递给js的正确方法吗?或者我应该使用另一种方法吗?
对于第二种情况(page.replace_html),我认为这已经被弃用/从3.1中移除(根据apidock).我怀疑这应该是在app/assets/javascript目录中使用js文件,但不确定我应该如何渲染部分并将此信息传递给js.
感谢这个领域的任何指针=)
我正在使用Rails 3.0和原型ujs rails.js脚本.
我有一些link_to "...", :remote => true链接在页面加载后添加到页面中,所以在rails.js将ujs事件附加到所有a[data-remote]链接之后.
如何让rails.js重新扫描以获取新链接?
rails.js似乎由一个匿名函数组成,所以我无法直接调用它.
我能想到的唯一方法是将所有rails.js包装在我自己的函数中,然后我可以在页面加载时调用*和*当我添加新链接时.
这似乎是一种合理的方法,但我犹豫不决,因为我无法相信我是第一个遇到这个问题并且没有标准方法可以做到这一点......
我正在尝试使用drracket通过"如何设计程序第二版"中的练习来工作.
这里的一些练习建立在前面问题的答案上,所以我想从已回答的问题中包含源文件,这样我就不必每次都复制并粘贴旧答案的正文.
我的主要问题是:我该怎么做?
我通过文档看了一下,发现一个叫做的方法
include似乎做了我想要的,但我无法弄清楚如何正确使用它.
例如 - 我有两个文件:
test.rkt - 这个编译并运行正常并包含一个函数:
(define (test) 1)
(test)
Run Code Online (Sandbox Code Playgroud)
newtest.rkt - 我希望这个文件能够使用test.rkt中定义的函数.
(require racket/include)
(include "test.rkt")
(define (newtest) (* test 2))
Run Code Online (Sandbox Code Playgroud)
当我尝试编译它时,我收到以下错误:
module: this function is not defined
Run Code Online (Sandbox Code Playgroud)
(信息量不大,但这是我给出的所有信息......)
如何在不收到此错误的情况下将第一个文件包含在内?是include
即使是在这个正确的功能,或者是我的方法完全错了吗?
我有一个现有的事件重页,我试图添加先行支持.预先输出功能可以根据需要运行,除了它似乎只能一次附加到输入项目.
问题是,为简单起见,在某些操作之后,现有页面会删除附加到特定输入的所有事件 $('input').off(),然后根据新上下文重新附加新事件处理程序.
这导致了一个问题,即重新连接的先行功能似乎永远不会触发.(这里讨论了一个类似但不同的问题:使用post响应更新Bootstrap的typeahead数据源时遇到麻烦但是这里没有相关性,因为我可以更新源代码 - 我只是不能让类型提前触发无论如何我尝试了什么)
编辑:为了澄清 - 更改源(如在链接的问题中)不是问题 - 实际页面上的源是一个向服务器发出请求的js函数.问题是调用.off()似乎永久地破坏了类型,并且我不能删除调用.off()而不必重写大部分页面....下面的代码和jsfiddle只是我可以设计的最短代码来演示问题
这里有一个工作jsfiddle记录问题:http: //jsfiddle.net/hz5P3/8/
供将来参考,完整代码如下.简要说明:input.workstext_field只有一个先行声明,工作正常.该input.no_works有一个称为预输入功能,则已经$('.no_works').off()呼吁取消对这个输入的所有事件.此功能的重新连接类型无法完成.
有没有办法按预期第二次调用预先输入工作?
谢谢
HTML
<div class="container">
<div class="hero-unit">
<h1>Bootstrap jsFiddle Skeleton</h1>
<p>this is a test typeahead that will work</p>
<input type="text" class="works" style="margin: 0 auto;">
<p>this is a test typeahead that is updated and will not work</p>
<input type="text" class="no_works" style="margin: 0 auto;">
</div>
</diV>?
Run Code Online (Sandbox Code Playgroud)
使用Javascript
$('.no_works').typeahead({ …Run Code Online (Sandbox Code Playgroud)