小编Kel*_*vin的帖子

未提供用于所需参数的HTTP状态代码?

我有几个设计用AJAX调用的页面 - 如果它们无法显示,我会让它们返回异常状态代码,我的javascript会相应地显示错误框.

例如,如果用户未经过身份验证或其会话超时并且他们尝试调用其中一个AJAX页面,则会返回401 Unathorized.

500 Internal Server Error如果服务器端发生了奇怪的事情,我也有一些回报.

如果在没有必要参数的情况下调用其中一个页面,我应该返回什么状态代码?(因此不能返回任何内容).

我查看了有关HTTP状态代码维基百科文章,但我能找到的最接近的代码是我正在寻找的代码:

422
不可处理的实体请求格式正确,但由于语义错误而无法遵循.

编辑:上面的代码是特定于WebDAV的,因此在这种情况下不太合适

谁能想到适当的代码才能返回?

http http-status-codes

54
推荐指数
3
解决办法
5万
查看次数

解释这个perl代码,它显示2个文件中的公共行

这两个文件的perl单行显示行如何共同?

perl -ne 'print if ($seen{$_} .= @ARGV) =~ /10$/'  file1 file2
Run Code Online (Sandbox Code Playgroud)

perl

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

如何获取BasicObject实例的类?

我有一个脚本迭代使用ObjectSpace#each_object没有args.然后它打印每个类存在多少个实例.

我意识到有些类重新定义了#class实例方法,所以我必须找到另一种方法来获得实际的类; 假设它存储在变量中"klass",并且klass === object是真的.

在Ruby 1.8中我可以做到这一点,假设Object没有monkeypatched:

Object.instance_method(:class).bind(object).call
Run Code Online (Sandbox Code Playgroud)

这适用于以下ActiveSupport::Duration情况:

# Ruby 1.8
# (tries to trick us)
20.seconds.class
=> Fixnum
# don't try to trick us, we can tell
Object.instance_method(:class).bind(20.seconds).call
=> ActiveSupport::Duration
Run Code Online (Sandbox Code Playgroud)

但是,在Ruby 1.9中,这不再起作用:

# Ruby 1.9
# we are not smart...
Object.instance_method(:class).bind(20.seconds).call
TypeError: bind argument must be an instance of Object
  from (irb):53:in `bind'
  from (irb):53
  from /Users/user/.rvm/rubies/ruby-1.9.2-p0/bin/irb:17:in `<main>'
Run Code Online (Sandbox Code Playgroud)

事实证明,这是ActiveSupport::Duration子类ActiveSupport::BasicObject.后者::BasicObject在Ruby 1.9中是子类,因此 …

ruby ruby-1.9

21
推荐指数
4
解决办法
1605
查看次数

了解结构域变异

Rust书中了解如何改变struct字段:

let mut point = Point { x: 0, y: 0 };
point.x = 5;
Run Code Online (Sandbox Code Playgroud)

然后:

可变性是绑定的属性,而不是结构本身的属性.

这对我来说似乎是违反直觉的,因为我point.x = 5看起来并不像重新绑定变量point.有没有办法解释这个,所以它更直观?

我能绕过这个问题的唯一方法就是"想象"我正在用不同的值重新绑定point到原始副本(甚至不确定是否准确).Pointx

struct mutators rust

16
推荐指数
4
解决办法
552
查看次数

俄罗斯娃娃片段缓存与自动过期密钥 - 性能的利弊

这个问题基于2篇文章:
- 来自37signals的DHH的Basecamp Next
- Adam Hawkins 在Rails中高级缓存

我对使用俄罗斯娃娃缓存的性能影响有点困惑,具体来说:

  1. 使用自动过期密钥时,似乎每个请求都会导致访问数据库以获取对象时间戳 - 我错过了什么吗?(我知道在最好的情况下,你必须只为层次结构中的顶级键做到这一点,但仍然......)

  2. 在第1篇文章中,他们缓存了一个待办事项列表,以及每个待办事项.缓存列表非常有意义,因为它节省了大量工作(所有项目的数据库查询).但为什么要缓存单个项目?您已经访问数据库以获取Item时间戳,那么您究竟要保存什么?生成一些html行?

  3. 在第二篇文章中,Adam缓存了这样的视图块: cache [post, 'main-content']... cache [post, 'comments'] 当添加注释时,它会更改帖子的时间戳,因此会使两个entires无效.但是,main-content没有改变 - 你不想再生它!如何才能使评论无效.(这实际上是一个非常常见的用户案例 - 一个具有一些逻辑上独立的部分的模型:对象本身,不同的关联,某些其他商店中的数据等)

对我来说,只有当你有一个深层次的嵌套对象时,俄罗斯玩偶缓存才有意义.(在basecamp中你有project-> todos list - > todo - > items list).但是,如果您的层次结构较浅,则最好自己进行无效.

对于任何反馈,我们都表示感谢!
谢谢.

ruby-on-rails fragment-caching 37-signals

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

Ruby:按字节长度限制UTF-8字符串

这个RabbitMQ页面说明:

队列名称最多可包含255个字节的UTF-8字符.

在ruby(1.9.3)中,如何通过字节计数截断UTF-8字符串而不会破坏字符中间?结果字符串应该是符合字节限制的最长有效UTF-8字符串.

ruby string byte utf-8 rabbitmq

11
推荐指数
4
解决办法
5144
查看次数

在bash中,如何打开可从外部重定向的可写文件描述符?

我正在尝试使用bash打开一个新的描述符来编写额外的诊断消息.我不想使用stderr,因为stderr应该只包含bash调用的程序的输出.我还希望我的自定义描述符可由用户重定向.

我试过这个:

exec 3>/dev/tty
echo foo1
echo foo2 >&2
echo foo3 >&3
Run Code Online (Sandbox Code Playgroud)

但是当我尝试重定向fd 3时,输出仍然写入终端.

$ ./test.sh >/dev/null 2>/dev/null 3>/dev/null
foo3
Run Code Online (Sandbox Code Playgroud)

bash file-descriptor io-redirection

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

为什么新行无法在此javascript警报窗口中运行?

我看到警报窗口和新行有很多不同的问题.大多数是\n在PHP中被认为是新行,而不是被发送到javascript.

在我的例子中,字符串正在显示的新窗口中输出\n.我只是尝试\n通过jsfiddle 写入一个警告框,这很有用,所以它一定是我做事的方法......

这是返回控制台的字符串.如你所见,\n肯定存在:

Username is required\nPassword is required\nEmail is required\nPhone is required\nCardnumber is required

但是,它显示如下:

使用\n而不是新行的警报

为什么会这样?我认为这可能与数据类型有关,因为它是从中返回的$.ajax

if (canAjax && !try_ajax) { 
    e.preventDefault();
    $.ajax({
        type: "POST", 
        url: "mobilesubmit.php",
        data: {"use_ajax": true, "formdata": $("#register_form").first().serializeArray()},
        success: function(data) {

            // This stupid thing should make new lines!
            alert(data);

            console.log(data);
        },
        error: function (request, status, error) {
            try_ajax = true;
            $("#register_form").submit();
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery alert

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

Ruby:自动将实例变量设置为方法参数?

是否有任何计划实现类似于在方法参数列表中指定实例变量名称的CoffeeScript功能的ruby行为?喜欢

class User
  def initialize(@name, age)
    # @name is set implicitly, but @age isn't.
    # the local variable "age" will be set, just like it currently works.
  end
end
Run Code Online (Sandbox Code Playgroud)

我知道这个问题:在Ruby中我可以在initialize方法中以某种方式自动填充实例变量吗?,但所有的解决方案(包括我自己的)似乎都不符合ruby简单哲学.

并且,这种行为会有任何缺点吗?

UPDATE

其中一个原因是红宝石社区的DRY(不要重复自己)哲学.我经常发现自己需要重复参数变量的名称,因为我希望将它分配给同名的实例变量.

def initialize(name)
  # not DRY
  @name = name
end
Run Code Online (Sandbox Code Playgroud)

我能想到的一个缺点是,如果一个方法没有正文,它可能看起来就像什么都没做.如果您正在快速扫描,这可能看起来像一个无操作.但我认为,只要有时间,我们就可以适应.

另一个缺点:如果您在正文中设置其他实例变量,并且您尝试通过将所有分配放在开头可读,则可能需要更多的认知"权力"才能看到分配也发生在参数列表中.但我不认为这比看到一个常量或方法调用并且不得不跳到它的定义更难.

# notice: instance var assignments are happening in 2 places! 
def initialize(@name)
  @errors = []
end
Run Code Online (Sandbox Code Playgroud)

ruby methods instance-variables argument-passing

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

主动资源响应,如何获取它们

我有一个活动资源,我查询数据.它返回记录,计数,无论我要求什么.

例如:product = Product.find(123)

响应头应该包含一个自定义属性,比如"HTTP_PRODUCT_COUNT = 20",我想检查响应.

IRB最有效的方法是什么?我没有Rails或其他可能提供底层响应的框架.

我是否需要通过monkeypatched调用或其他方式破解Net :: HTTP或ActiveResource本身?

ruby response activeresource http-headers

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