小编Bry*_*yan的帖子

如何在另一个Ruby代码文件中引用一个方法?

我有一个Ruby代码文件(somelogic.rb),它包含几个方法和类,位于/ home/user/code中.现在我在同一目录中编写另一个类,并希望引用somelogic.rb中的方法和类.我怎么做?我非常感谢任何意见.

ruby

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

如何使用$ gt和$ lte优化MongoDB查询?

我有以下查询,有点像反向范围查找:

db.ip_ranges.find({ $and: [{ start_ip_num: { $lte: 1204135028 } }, { end_ip_num: { $gt: 1204135028 } }] })
Run Code Online (Sandbox Code Playgroud)

当仅使用$ lte标识符运行时,查询立即返回.但是当我在同一个查询中使用$ gt和$ lte运行时,它非常慢(以秒为单位).

start_ip_num和end_ip_num字段都被索引.

我该如何优化此查询?

编辑

当我在查询中使用explain()函数时,我得到以下内容:

{
    "cursor" : "BtreeCursor start_ip_num_1",
    "nscanned" : 452336,
    "nscannedObjects" : 452336,
    "n" : 1,
    "millis" : 2218,
    "nYields" : 0,
    "nChunkSkips" : 0,
    "isMultiKey" : false,
    "indexOnly" : false,
    "indexBounds" : {
        "start_ip_num" : [
            [
                -1.7976931348623157e+308,
                1204135028
            ]
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑2

一旦我添加了复合索引,explain()函数就会返回以下内容:

{
    "cursor" : "BtreeCursor start_ip_num_1_end_ip_num_1",
    "nscanned" : 431776,
    "nscannedObjects" : …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query

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

Django 1.2.4 CSRF验证失败

当我执行POST表单时,Django 1.2一直给我这个CSRF验证错误.我"想"我已经完成了Django 1.2文档中提到的所有事情,即

  1. 确保MIDDLEWARE_CLASSES包含在'django.middleware.csrf.CsrfViewMiddleware'中

  2. 确保{%csrf_token%}

    <form action="/words/new/" method="post">
    {% csrf_token %}
    {{ form.as_p }}
        <input type="submit" value="Enter" />
    </form>
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在我的回复中使用RequestContext

    def create(request):
        if request.method == 'POST':
            form = DefinitionForm(request.POST)
            if form.is_valid():
                form.save()
            c = {}
            return render_to_response('dict/thanks.html',c, 
                                        context_instance=RequestContext(request))
        else:
            form = DefinitionForm()
        return render_to_response('dict/create_definition.html', {
            'form' : form,
        })
    
    Run Code Online (Sandbox Code Playgroud)

请注意,GET操作适用于此功能.所以我认为我正在使用render_to_response.

我甚至试图投入@csrf_protect装饰器,甚至那似乎没有用.我没有想法,我准备用笔记本电脑掐自己.

你们能想到的任何事情?

谢谢!

django csrf django-csrf csrf-protection

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

如何将params传递给Android AsnycTaskLoader

我正在尝试将params传递给AsyncTaskLoader.我怎么做?

目前,我正在将我需要传递的内容放在一个单独的静态类中.无论如何围绕这个?

public class NewsAsyncTaskLoader extends AsyncTaskLoader<List<Content>> {

    private static final DbHelper dbHelper = DbHelperFactory.getDbHelper();

    public FeedAsyncTaskLoader(Context context) {
        super(context);
    }

    @Override
    public List<Content> loadInBackground() {
        List<Content> contents = DbHelper.getStream(FeedSections.getInstance().getCurrentSection());

        feed.setContents(contents);

        return feed;
    }
}
Run Code Online (Sandbox Code Playgroud)

android asynctaskloader

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

如何序列化/反序列化生成的WCF代理代码?

我试图从svcutil序列化/反序列化生成的WCF Web服务代理代码.虽然我能够序列化对象,但我无法将它们反序列化回对象.这是我通过序列化生成的XML:

<RootObject xmlns="http://schemas.myco.com/online/sync/2008/11">
    <WrapperObject>
        <Objects>
            <SomeObject p4:type="Foo" ContextId="d5f9f021-b2a1-47ba-9f25-1e068194dc87" ObjectId="fad3ef87-3944-459d-b45b-1e4e52ef24db" xmlns:p4="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.myco.com/online/sync/2008/11" />
        </Objects>
      </WrapperObject>
</RootObject>
Run Code Online (Sandbox Code Playgroud)

我有几个问题:

  1. 我已经在使用XmlSerializerNamespaces来声明命名空间以匹配生成的代理代码中指定的命名空间.为什么还有一个"p4"标签,它添加到"SomeObject"标签并添加了一个新的xml命名空间(xmlns:p4 ="http://www.w3.org/2001/XMLSchema-instance").

        using (XmlWriter xmlWriter = XmlWriter.Create(stringBuilder, xmlSettings))
        {
            XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
            namespaces.Add(string.Empty, defaultNamespace);
    
            XmlSerializer serializer = new XmlSerializer(typeof(T), defaultNamespace);
            serializer.Serialize(xmlWriter, objectToBeSerialized, namespaces);
    
            return stringBuilder.ToString();
        }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 当我尝试使用以下代码反序列化XML时,我收到以下错误:"System.InvalidOperationException:生成XML文档时出错.---> System.Xml.XmlException:'p4:type'是重复的属性名称."

        using (TextReader textReader = new StringReader(xmlString))
        {
            using (XmlReader xmlReader = XmlReader.Create(textReader))
            {
                XmlSerializer serializer = new XmlSerializer(typeof(T), defaultNamespace);
                return (T)serializer.Deserialize(xmlReader);
            }
        }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 代理代码由svcutil生成,以与WCF Web服务进行通信.当我使用Web服务调用时,所有生成的对象都被正确地序列化/反序列化.

以前有没有人有类似的问题?

.net c# xml-serialization

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

如何使用Underscore.js和HAML插入if/else语句?

我试图让if/else插入与Underscore.js和HAML一起使用,但无济于事.我已经将Underscore.js中的插值设置更改为以下内容:

_.templateSettings = {
  interpolate : /\{\{([\s\S]+?)\}\}/g
};
Run Code Online (Sandbox Code Playgroud)

当我尝试在{{value}}之类的符号中插入值时,这很有效.但是,我没有使if/else语句有效.我有以下内容:

{{ if (true) { }}
  {{ val }}
{{ } }}
Run Code Online (Sandbox Code Playgroud)

我得到一个Javascript异常"Uncaught SyntaxError:Unexpected token if".非常感谢帮助.

haml interpolation ruby-on-rails underscore.js underscore.js-templating

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

在FB.login调用之后,Facebook JavaScript SDK不会在chrome中设置访问令牌cookie

我正在使用Facebook JavaScript SDK来实现我网站的登录.我已经在Safari和Firefox上使用它,但在Chrome中却没有.

在调用FB.login方法之后,我能够从Facebook检索访问令牌,但它没有像在Firefox和Safari中那样在cookie中设置访问令牌和用户ID.目前,我正在手动将访问令牌和用户ID写入cookie,以便登录流程正常工作,但它仍然让我感觉不到访问令牌不是单独在Chrome中编写的.

有没有人遇到过这个问题并且知道手边有什么问题?非常感激.

下面是我的init和登录逻辑代码:

window.fbAsyncInit = function() {
  FB.init({
    appId      : "#{AppConfig.facebook['app_id']}", // App ID
    status     : true, // check login status
    cookie     : true, // enable cookies to allow the server to access the session
    xfbml      : true  // parse XFBML
  });

  // Additional initialization code here
};

// Load the SDK Asynchronously
(function(d){
   var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
   if (d.getElementById(id)) {return;}
   js = d.createElement('script'); js.id = id; js.async = true;
   js.src = "//connect.facebook.net/en_US/all.js"; …
Run Code Online (Sandbox Code Playgroud)

javascript facebook ruby-on-rails

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

在渲染包含Float :: NAN对象的哈希时,Rails返回无效的JSON

我正在为Rails控制器调用返回JSON.在控制器中,我需要从包含NaN对象的Ruby哈希生成JSON.返回JSON时,浏览器显示错误:

{
  "value": NaN
}
Run Code Online (Sandbox Code Playgroud)

错误:第1行的解析错误:"value":NaN

我做了一些快速的研究,似乎NaN不是一个有效的JSON对象,因此应该用引号括起来 - "NaN".Rails JSON解析器不符合标准JSON格式并将NaN对象包装在引号中似乎相当愚蠢.

我试图将哈希扁平化为字符串并将其转换回哈希值.但我一直在解析错误.

我该如何解决这个问题?


编辑:

简单来说,问题就是这样:

{ "value" => Float::NAN }
Run Code Online (Sandbox Code Playgroud)

编辑2:

我需要将上面的哈希转换为以下json:

{
  "value": "NaN"
}
Run Code Online (Sandbox Code Playgroud)

ruby json ruby-on-rails

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

Devise gem使用什么算法来生成身份验证令牌?

我有一个使用Devise身份验证令牌机制进行客户端令牌身份验证的应用程序.我想知道gem使用什么算法来生成令牌本身?是BCrypt吗?MD5等...

authentication encryption ruby-on-rails devise

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