小编Joh*_*ohn的帖子

如何从Json.NET获取密钥列表?

我正在使用C#和Json.NET.如果我有一个JObject,我想要一个对象内的键列表,类似于object.Keys()返回对象中的键的方式.这似乎很明显,但我很难找到一种方法来做到这一点.

编辑: 我正在遍历对象,我想在我经历时吐出对象中的所有键.我意识到这个例子会导致多次看到相同的密钥,这对我的需求是可以的.

public void SomeMethod(JObject parent) {
    foreach (JObject child in parent.Children()) {
        if (child.HasValues) {
        //
        // Code to get the keys here
        //
        SomeMethod(child);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# json.net

58
推荐指数
2
解决办法
6万
查看次数

Elastic MapReduce中可用的减速器

我希望我能以正确的方式提出这个问题.我正在学习Elastic MapReduce的方法,并且我看到了许多对"Aggregate"减速器的引用,它可以与"Streaming"作业流程一起使用.

在亚马逊的"Amazon Elastic MapReduce简介"PDF中,它声明"Amazon Elastic MapReduce有一个名为aggregrate的默认缩减器"

我想知道的是:还有其他默认减速机可用吗?

我知道我可以编写自己的减速机,但我不想写完已经存在的东西并"重新发明轮子",因为我确信我的轮子不会像原来那样好.

reduce amazon hadoop aggregate mapreduce

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

如何在Ruby中将整数舍入到<最接近的大数>?

说我有以下任何一个数字:

230957或83487或4785

在Ruby中有什么方法我可以分别返回300000或90000或5000?

ruby rounding significant-digits

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

使用JUnit时运行TimerTask

我有一个看起来像这样的函数:

private Timer timer = new Timer();

private void doSomething() {
    timer.schedule(new TimerTask() {
        public void run() {
            doSomethingElse();
        }
    },
    (1000));
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试为我的代码编写JUnit测试,并且特别是在测试此代码时,它们的行为并不像预期的那样.通过使用EclEmma,我能够看到我的测试从未触及过该doSomethingElse()功能.

如何在JUnit中编写测试,TimerTask在继续测试之前等待足够长的时间才能完成测试?

java junit junit3 timertask

9
推荐指数
3
解决办法
6799
查看次数

为什么在PHP中加密的东西与在Ruby中加密的相同字符串不匹配?

这是我的要求:

我需要使用AES加密(包括随机iv)在PHP中加密字符串,对其进行Base64编码,然后对其进行URL编码,以便将其作为URL参数传递.

我试图在PHP和Ruby中获得相同的结果,但我不能使它工作.

这是我的PHP代码:

function encryptData($data,$iv){
    $cipher = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
    $iv_size = mcrypt_enc_get_iv_size($cipher);
    if (mcrypt_generic_init($cipher, 'g6zys8dlvvut6b1omxc5w15gnfad3jhb', $iv) != -1){
        $cipherText = mcrypt_generic($cipher,$data );
        mcrypt_generic_deinit($cipher);
        return $cipherText;
    }
    else {
        return false;
    }
}
$data = 'Mary had a little lamb';
$iv = '96b88a5f0b9efb43';
$crypted_base64 = base64_encode(encryptData($data, $iv));
Run Code Online (Sandbox Code Playgroud)

这是我的Ruby代码:

module AESCrypt
  def AESCrypt.encrypt(data, key, iv)
    aes = OpenSSL::Cipher::Cipher.new("aes-256-cbc")
    aes.encrypt
    aes.key = key
    aes.iv = iv
    aes.update(data) + aes.final      
  end
end

plaintext = "Mary had a little lamb"
iv = …
Run Code Online (Sandbox Code Playgroud)

php ruby openssl mcrypt

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

登录或注册后如何让Devise重定向到存储位置?

我正在编写一个Rails应用程序中使用Devise,我想让用户在登录或注册后回到原来的位置.

例如,如果我有一个"评论"控制器受以下保护:

before_filter :authenticate_user!
Run Code Online (Sandbox Code Playgroud)

然后我希望点击"立即评论"的用户!按钮(因此重定向到CommentsController中的新操作)登录,然后让Devise将它们重定向到CommentsController中的新操作(或者它们在哪里),而不是应用程序的通用根,或者通用的after_sign_in_path.

通过RDOC for Devise,我发现这个方法看起来好像Devise至少有能力独自完成这样的事情,但我无法找到方法.

authentication ruby-on-rails devise

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

为丢失的模板提供404而不是500错误

我有一个Rails 3.0应用程序(工作在3.2升级),每当有人请求一个不存在的模板时,它会在生产中产生500错误.例如,mysite.com/blog_posts/532将ID为532的帖子作为HTML发送回来没有问题,但如果由于某种原因请求mysite.com/blog_posts/532.txt,该应用程序会引发500 ActionView :: MissingTemplate错误.

这不应该发生,因为模板首先不应该存在.它应该更恰当地是404错误,或者只是显示HTML模板.

如何让应用程序显示所有缺失模板错误的404错误,或显示默认的HTML模板而不是500?

日志:

Started GET "/blog_posts/73.txt" for 127.0.0.1 at 2013-05-20 21:22:51 -0400
  Processing by BlogPostsController#show as TEXT
  Parameters: {"id"=>"73"}
  PK and serial sequence (2.0ms)   SELECT attr.attname, seq.relname
 FROM pg_class seq,
 pg_attribute attr,
 pg_depend dep,
 pg_namespace name,
 pg_constraint cons
 WHERE seq.oid = dep.objid
 AND seq.relkind = 'S'
 AND attr.attrelid = dep.refobjid
 AND attr.attnum = dep.refobjsubid
 AND attr.attrelid = cons.conrelid
 AND attr.attnum = cons.conkey[1]
 AND cons.contype = 'p'
 AND dep.refobjid = '"blog_posts_blog_tags"'::regclass
  PK and custom sequence (1.0ms) …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails actionview

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

你可以在Java之后立即放置吗?

Eclipse允许我编写这样的代码,并且不会显示任何错误:

for (SomeClass c : listOfSomeClass) if (c.someBoolean) {
    // actions to take if someBoolean is true
}
Run Code Online (Sandbox Code Playgroud)

这会表现得如预期,还是这不是有效的Java?

java

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

Ruby on Rails-如何以root身份运行bash脚本?

我想要做的是使用'button_to'和朋友在linux服务器上启动不同的脚本.并非所有脚本都需要是root用户,但有些脚本将会运行"apt-get dist-upgrade"等等.

PassengerDefaultUser在apache2.conf中设置为www-data

我已经尝试从控制器运行脚本,这些脚本可以执行诸如写入文本文件之类的操作,以便我知道我正在让Rails正确执行脚本.(换句话说,我知道如何从控制器运行脚本)但我无法弄清楚如何运行需要root访问权限的脚本.有人能给我带头吗?

关于安全性的说明:感谢所有针对黑客行为的警告.但是,您不需要放松任何睡眠,因为A)无法从公共互联网访问webapp,它只能在私有内部网上访问,B)应用程序受密码保护,而C)因为用户不会能够提供自定义输入,只从表单中进行选择,该表单将作为变量传递给脚本.但是,因为我说这并不意味着我无视您的安全建议 - 我将在我的设计中非常仔细地考虑它们.

ruby-on-rails

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

如何在Timer中获取我的对象实例

我现在正在学习Java,我在其中一个函数中有计时器,如下所示:

public class SomeClass {
    private Timer timer = new Timer();

    private void someFunction() {
        timer.schedule(new TimerTask() {
            public void run() {
               // here lies the problem
            }
        },
        1000);
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是调用另一个函数someOtherFunction(SomeClass c),该函数将参数作为参数SomeClass.在计时器之外,我可以简单地说someOtherFunction(this),但在计时器内部不起作用,因为thisTimerTask.

我该怎么做才能获得SomeClass计时器内部的实例?

java timer

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

将Rails中的下划线名称转换为"漂亮"文本(与ActiveRecord一样)

我这里有一个非常简单的问题.我只想知道是否有现成的Rails方法来实现这一目标,因为我不想重新编写已经在框架中的东西.

想想一个像"this_is_an_example"这样的下划线变量名.有没有一种快速的方法可以使用Rails将其转换为"这是一个例子"甚至"这是一个例子"?我知道ActiveRecord打印表列名如"first_name"作为"First Name",它是如何做到的?

谢谢!

string ruby-on-rails

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

Rails will_paginate在HABTM模型上显示重复项

我正在使用will_paginate与博客帖子和标签之间的HABTM关系.每当我应用分页时,我都会显示重复的帖子,因为Rails中的HABTM不会保持数据库的唯一性,它会在进行查询时应用唯一性.

blog_posts.rb

has_and_belongs_to_many :tags, :uniq => true

tag.rb

has_and_belongs_to_many :blog_posts, :uniq => true

根据ActiveRecord 的文档,:uniq不会阻止存储重复的关系,它只是在构建查询时忽略它们.

这是问题: tag = Tag.find(1) tag.blog_posts.count等于1,但是: tag.blog_posts.page(nil).count等于3,并且所有3都是同一帖子的重复.正确的行为应该只显示1,而不是重复.

我知道我可以复制这里生成的SQL查询并以这种方式修复它,但这似乎不是一个好的解决方案.有人可以帮我解决潜在的问题吗?(虽然我担心这是will_paginate中的一个错误)

编辑:这似乎也是Kaminari的一个问题.

activerecord ruby-on-rails will-paginate

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