小编Duk*_*ver的帖子

ActiveRecord错误:SAVEPOINT active_record_1不存在

完整的错误是

ActiveRecord::StatementInvalid: Mysql2::Error: SAVEPOINT active_record_1 does not exist: ROLLBACK TO SAVEPOINT active_record_1
Run Code Online (Sandbox Code Playgroud)

每当我尝试创建一个新的ActiveRecord对象时,我正在编写单元测试并收到此错误 - 但仅在某个点之后.这些行发生在以下行之后:

ActiveRecord::Base.connection.execute "DROP TABLE IF EXISTS foo"
ActiveRecord::Base.connection.execute "CREATE TABLE foo (id INTEGER PRIMARY KEY)"
Run Code Online (Sandbox Code Playgroud)

(如果测试成功,表'foo'将填充数据)

在上面的行之前,我可以写一些类似的东西

User.create(email => 'foo@bar.com')
Run Code Online (Sandbox Code Playgroud)

一切正常.但是,如果我在调用ActiveRecord :: Base.connection.execute之后尝试编写上面的行,那么我会得到上面描述的SAVEPOINT错误.我也尝试将我的执行语句放在一个事务中,但这没有帮助.我很难过.

仅供参考 - 我正在使用Rails 3.2.8

mysql activerecord ruby-on-rails

22
推荐指数
2
解决办法
1万
查看次数

使用javascript链接下载PhantomJS

我试图刮掉以下网站:

http://www.fangraphs.com/leaders.aspx?pos=all&stats=bat&lg=all&qual=0&type=8&season=2011&month=0&season1=2011&ind=0&team=0&rost=0&players=0

如果单击标题为"导出数据"的表右上角的小按钮,则会运行javascript脚本,我的浏览器会以.csv格式下载该文件.我希望能够编写一个可以自动执行此操作的PhantomJS脚本.有任何想法吗?

上面的按钮被编码为HTML,如下所示:

<a id="LB_cmdCSV" href="javascript:__doPostBack('LB$cmdCSV','')">Export Data</a></div>
Run Code Online (Sandbox Code Playgroud)

我还在HTML源代码中找到了这个函数:

<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
    theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</script>
Run Code Online (Sandbox Code Playgroud)

我是PhantomJS/Javascript的新手,可以在这里使用一些指针.我想我已经找到了我需要自动完成的所有信息(如果我错了,请纠正我),但不知道从哪里开始编码.谢谢你的帮助.

编辑 - 这就是我的脚本现在的样子:

var page = new WebPage();
url = 'http://www.fangraphs.com/leaders.aspx?pos=all&stats=bat&lg=all&qual=0&type=8&season=2011&month=0&season1=2011&ind=0&team=0&rost=0& players=0';

page.open(encodeURI(url), function (status){
  if (status !== "success") {
    console.log("Unable to access website");
  } else {
      page.evaluate(function() {
        __doPostBack('LB$cmdCSV', '');
      });
    }
  phantom.exit(0); …
Run Code Online (Sandbox Code Playgroud)

javascript screen-scraping phantomjs

13
推荐指数
1
解决办法
4957
查看次数

SQL真实列的百分比

我有一个表,其中每一行都有一个描述字段以及一个布尔值.我正在尝试编写一个查询,我可以按每个相应的描述进行分组,并查看布尔值为真的次数百分比.

示例表:

    PID    Gender    SeniorCitizen
     1       M             1
     2       M             1
     3       F             0
     4       F             1
     5       M             0
Run Code Online (Sandbox Code Playgroud)

我想要一个将返回此信息的查询:

    Gender    SeniorPct
      M         .66
      F         .50
Run Code Online (Sandbox Code Playgroud)

我已经到了能够计算男性或女性个人百分比的查询,但我希望一次看到两个结果

    SELECT Gender, COUNT(*) * 1.0 / 
                   (SELECT COUNT(*) FROM MyTable WHERE Gender='M') 
    FROM MyTable WHERE Gender='M' and SeniorCitizen=1;
Run Code Online (Sandbox Code Playgroud)

我一直在尝试在上面的外部SELECT中包含一个"GROUP BY Gender"语句,但我似乎无法弄清楚如何在调整外部SELECT之后调整内部SELECT以获得正确的结果.

sql sqlite

3
推荐指数
1
解决办法
2971
查看次数

与pytz时区的datetime.不同的偏移量取决于tzinfo的设置方式

我今天遇到了一个有趣的情况.谁能解释为什么ts1和ts2的偏移量不同?ts1是一个日期时间对象,可立即识别时区.ts2是一个日期时间对象,它从时区开始并且替换了tzinfo.然而,他们最终得到不同的抵消.

>>> from pytz import timezone
>>> EST = timezone('America/New_York')
>>> ts1 = datetime.datetime.now(tz=EST)
>>> ts2 = datetime.datetime.now()
>>> ts2 = ts2.replace(tzinfo=EST)
>>> print ts1
2014-05-16 11:25:16.749748-04:00
>>> print ts2
2014-05-16 11:25:19.581710-05:00
Run Code Online (Sandbox Code Playgroud)

python timezone datetime pytz

2
推荐指数
2
解决办法
6064
查看次数

包含多种 Java 类型的表上的 DynamoDBMapper

我有一个 DynamoDB 表,其中包含不止一种类型的逻辑实体。我的表存储“员工”和“组织”,并在两者之间创建多对多关系。

我正在努力解决如何使用 DynamoDBMapper 对实体和表进行建模。特别是在尝试编写将返回员工和组织的查询时。

在我的 Java 代码中,我首先使用两个类来表示这些实体。

员工.java

@DynamoDBTable(tableName = "workplaces")
public class Employee() {
  @DynamoDBHashKey(attributeName = "pk")
  public String employeeId;

  @DynamoDBRangeKey(attributeName = "sk")
  public String sortKey

  // Other attributes specific to employees, as well as getters and setters
}
Run Code Online (Sandbox Code Playgroud)

和 Organization.java:

@DynamoDBTable(tableName = "workplaces")
public class Organization() {
  @DynamoDBHashKey(attributeName = "pk")
  public String organizationId;

  @DynamoDBRangeKey(attributeName = "sk")
  public String sortKey

  // Other attributes specific to organizations, as well as getters and setters
}
Run Code Online (Sandbox Code Playgroud)

我的查询访问模式之一是“检索组织的详细信息及其所有员工”。我设计的表架构允许我在单个查询中检索所有这些项目。

我正在努力解决如何使用 DynamoDbMapper 在 …

java amazon-dynamodb dynamodb-queries dynamodb-mapper

2
推荐指数
1
解决办法
1890
查看次数