小编Wow*_*Bow的帖子

需要帮助使用Rails将数据库从开发迁移到测试

类似的问题已被问到很多.但是,我认为我的情况有点不同.我从Heroku(我在prod中使用sqlite3)向我的本地机器(使用PostgreSQL)中提取了一个数据库.prod db当时没有任何数据.

在那之后,我还没有进行任何db迁移来测试.现在我在dev db中有几个字段.但是,当我去测试控制台看看我有什么(引用User表)时,User.count返回0,但在dev中返回2个用户.

所以我做了rake db:migrate RAILS_ENV=test既没有错误信息也没有成功信息.我认为这是成功的,并检查测试数据库是否有这2个用户,但仍然没有.然后我试了一下bundle exec rake db:test:prepare.这是输出

**You have 4 pending migrations:

  20120415210441 CreateUsers

  20120418064930 AddIndexToUsersEmail

  20120419034627 AddPasswordDigestToUsers

  20120504031144 AddRememberTokenToUsers

Run `rake db:migrate` to update your database then try again.**
Run Code Online (Sandbox Code Playgroud)

解决办法是什么?

编辑: 仅供参考:我正在使用Windows我也运行rake db:migrate 并且我收到了此错误.

$ rake db:migrate
==  CreateUsers: migrating ====================================================
-- create_table(:users)
rake aborted!
An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: table "users" already exists: CREATE TABLE "users" ("id"
INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), …
Run Code Online (Sandbox Code Playgroud)

testing ruby-on-rails rails-migrations ruby-on-rails-3

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

如何读取文本文件中字符串数据的特定位置

我正在处理一个包含多达一千行的文本文件.一个文本文件中有多个页眉和页脚.所以我不需要处理包含@h和@f的行.它告诉我事务的开始和结束(数据库事务,我将在一个事务中将这些记录保存到DB).

样本记录如下.虽然这条线达到了一千行而且列数达到了40列.从每一行我只寻找一个特定的数据,即(例如,我需要从位置8到30获取一个名字,从60到67岁的年份和喜欢的名字).该位置可能是下一个空格或字符串之间.因此,我不想将每行的数据放入缓冲区/内存中来处理它,因为我只对它们中的一些感兴趣.CSV文件是否允许从一行中的特定位置获取数据?我应该使用什么来获得更好的性能(尽可能快地处理数据而不占用太多内存.)?我正在使用Java

@h Header
@074VH01MATT    TARA   A5119812073921 RONG HI  DE BET IA76200  201108222   0500  *
@074VH01KAYT    DJ     A5119812073921 RONG DED CR BET IA71200  201108222   0500  *
@f Footer

@h Header
@074VH01MATT    TARA   A5119812073921 RONG HI  DE BET IA76200  201108222   0500  *
@074VH01KAYT    DJ     A5119812073921 RONG DED CR BET IA71200  201108222   0500  *
@f Footer
Run Code Online (Sandbox Code Playgroud)

java csv file filereader

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

$ b.link(:text =>"注册").when_present.click不在yahoo上工作

我是Watir WebDriver的新手.我正在玩这个框架,我包括下面的代码,但第二行不起作用

$b = Watir::Browser.new :ie #browser
$b.goto "www.yahoo.com" 
$b.link(:text => "Sign up").when_present.click
Run Code Online (Sandbox Code Playgroud)

我不知道为什么它没有得到注册链接.我看到雅虎的消息来源如下

<span class="tab-caption small y-txt-2">New here? <a href="http://hsrd.yahoo.com/_ylt=A2KLtVHgLNtQHnMBTk.bvZx4/SIG=13tjppi7u/EXP=1356627552/**https%3A//edit.yahoo.com/registration%3F.src=fpctx%26.intl=us%26.done=http%253A%252F%252Fwww.yahoo.com%252F" class="y-link-1">Sign Up</a></span>   
Run Code Online (Sandbox Code Playgroud)

我的代码有什么问题?我也试过没有when_present,它说元素是不可见的.

ruby selenium watir watir-webdriver

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

Java 8:如何将for循环转换为并行运行?

for (int i=0; i<100000; i++) {
    // REST API request. 
restTemplate.exchange(url, HttpMethod.GET, request, String.class);
}
Run Code Online (Sandbox Code Playgroud)

我有一种情况,我必须为10万用户请求一个资源,它需要70分钟才能完成.我试图尽可能地清理我的代码,我只能将它减少4分钟).

由于每个请求彼此独立,我很乐意并行发送请求(可能是10s,100s甚至1000s的块,每次快速完成).我希望我能把时间减少到10分钟或者接近的时间.如何计算哪个块大小可以快速完成工作?

我找到了以下方法,但我不知道该程序是否一次处理所有20个; 或一次5个; 或者一次10个.

IntStream.range(0,20).parallel().forEach(i->{
     ... do something here
});
Run Code Online (Sandbox Code Playgroud)

我知道你的帮助.我对任何建议或评论都持开放态度!

更新:我能够使用IntStream,并在28分钟内完成任务.但我不确定这是我能做的最好的.

java parallel-processing concurrency java.util.concurrent java-8

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

Content-Disposition 文件扩展名在 Firefox 上无法正常工作

我在 Spring 控制器上有以下代码

@RequestMapping(value = "/download", method = RequestMethod.POST)
 public void downloadActive(@RequestParam(value = "type") String offerType, HttpServletResponse response,
            HttpSession session) throws Exception {

 StringBuilder b = new StringBuilder();.
.
.

response.addHeader("Content-Disposition: ", "attachment; filename=my" + offerType + "Offers.csv");
response.getWriter().write(b.toString());
..

}
Run Code Online (Sandbox Code Playgroud)

当点击 EXt Js 的下载按钮时,此代码就会被执行。在 Chrome 上,它直接以 *.csv 格式下载文件,当用户打开它时,如果已经安装了 Excel,它将自动使用 Excel 打开文件,这是我想要的正确行为。

但是,在 Firefox 上,它会提示一个“另存为”窗口,其中包含“打开方式”和“保存”选项。如果我使用 open with 选项,它会告诉我文件名是 filename.csv 但类型是 chrome htm 文件。我没有在代码中的任何地方提到 htm,我不知道为什么它试图将其打开为 htm 而不是 csv 文件。一旦它尝试打开它,它会带来 Excel 应用程序,并且内容格式错误。

有没有办法在 Firefox 上避免这个问题?

谢谢

java browser csv spring-mvc content-disposition

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

如何在office 365 REST API中发送邮件?

我找到了有关如何使用Office 365 rest API发送电子邮件的以下文档.

这是关于doucmentation的例子:

POST https://outlook.office.com/api/v2.0/me/sendmail

{
  "Message": {
    "Subject": "Meet for lunch?",
    "Body": {
      "ContentType": "Text",
      "Content": "The new cafeteria is open."
    },
    "ToRecipients": [
      {
        "EmailAddress": {
          "Address": "garthf@a830edad9050849NDA1.onmicrosoft.com"
        }
      }
    ],
    "Attachments": [
      {
        "@odata.type": "#Microsoft.OutlookServices.FileAttachment",
        "Name": "menu.txt",
        "ContentBytes": "bWFjIGFuZCBjaGVlc2UgdG9kYXk="
      }
    ]
  },
  "SaveToSentItems": "false"
}
Run Code Online (Sandbox Code Playgroud)

如果用户授权应用程序代表它执行操作,则此方法正常.但是,我使用客户端信任来构建一个守护程序应用程序,代表给定租户中的所有用户,因此"POST https://outlook.office.com/api/v2.0/me/sendmail "无法正常工作因为它引用了"我",无法分辨哪个用户正在发送电子邮件.

如果你可以提供示例示例,我会谨慎行事.仅供参考:我使用的是Java,但您的答案不一定是Java.

exchange-server azure-active-directory adal outlook-restapi office365api

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

Java文档构建器返回Xml字符串的空文档

在此处输入图片说明我在Stackoverflow上尝试了所有可能的答案,但无法解决。

我将以下xml作为字符串:

private static final String xmlStr = "<parameters>\n" +
            "  <parameter>\n" +
            "    <name>emp</name>\n" +
            "    <keyvalue>John Smith</keyvalue>\n" +
            "  </parameter>\n" +
            "  <parameter>\n" +
            "    <name>age</name>\n" +
            "    <keyvalue>22</keyvalue>\n" +
            "  </parameter>\n" +
            "  <parameter>\n" +
            "    <name>Birth Date</name>\n" +
            "    <keyvalue>02/05/1978</keyvalue>\n" +
            "  </parameter>\n" +
            "  <parameter>\n" +
            "    <name>password</name>\n" +
            "    <keyvalue>ye63633</keyvalue>\n" +
            "  </parameter>\n" +
            "</parameters>";
Run Code Online (Sandbox Code Playgroud)

该参数可以用任何字符串替换(我尝试不成功),并且以下代码返回空文档:

 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            factory.setNamespaceAware(true);
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document document = builder.parse(new ByteArrayInputStream(xmlStr.getBytes("UTF-8")));
Run Code Online (Sandbox Code Playgroud)

我尝试用以下方式替换文档:

Document …
Run Code Online (Sandbox Code Playgroud)

java xml parsing xmldocument xml-parsing

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

为什么Integer.parseInt(String str)在Java中返回int而不是Integer?

我问这个问题,因为我有一种情况,我有以下两种方法:

public T get(Serializable id) and
public T get(int id) 
Run Code Online (Sandbox Code Playgroud)

我必须在大多数情况下使用第一种方法,而第二种方法已在我们的系统中弃用.

我的输入是String所以每次我需要调用时 get(Serializable id),我必须传递Integer而不是int,否则它将使用不推荐使用的第二种方法.即我打电话Integer.parseInt(str),然后我不得不专栏它整数(即(Integer)Integer.parseInt(str)),这似乎是多余的.

有没有更好的方法来实现这一点,为什么Integer.parseInt(str)return int而不是Integer的实现?

java autoboxing serialization unboxing integer

0
推荐指数
1
解决办法
568
查看次数

AADSTS50011回复地址未使用安全方案[AZURE]

我正在按照本教程https://dev.outlook.com/restapi/tutorial/java进行操作,以便完成创建一个简单的Java Spring MVC应用程序的过程,该应用程序可以在Office 365或Outlook.com中检索邮件.

到目前为止我做了什么:

  • 在AZURE-365-MAIL-API注册上注册我们的应用程序
  • 将appId,appPassword和redirectUrl用于我的应用程序并发出请求.

这里是控制器类:

@RestController
@RequestMapping("/auth")
public class AuthorizeController {

@RequestMapping(value = "/authorize", method = RequestMethod.GET)
public JasonMessage authorize(
        @RequestParam("code") String code,
        @RequestParam("id_token") String idToken,
        @RequestParam("state") UUID state,
        HttpServletRequest request) {
    {
        // Get the expected state value from the session
        HttpSession session = request.getSession();
        UUID expectedState = (UUID) session.getAttribute("expected_state");
        UUID expectedNonce = (UUID) session.getAttribute("expected_nonce");

        // Make sure that the state query parameter returned matches
        // the expected state
        if (state.equals(expectedState)) {
            session.setAttribute("authCode", code); …
Run Code Online (Sandbox Code Playgroud)

java authentication azure office365 azure-active-directory

0
推荐指数
1
解决办法
3225
查看次数

s.split( '').?.?Ruby语法

我是ruby on rails的新手,并开始了一个教程并找到了以下函数

 def string_shuffle(s)
>>   s.split('').?.?
>> end
=> nil
>> string_shuffle("foobar")
Run Code Online (Sandbox Code Playgroud)

怎么 s.split('').?.?办?我知道拆分方法,但我不知道这两个问号是什么.我看到"?在布尔方法中使用,但我无法理解这个是如何工作的.我试着谷歌但是,我根本找不到它.

syntax

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