小编age*_*217的帖子

Ruby:片段是什么:(num&1)== 0究竟是做什么的?

我正在观看来自PragProg的元编程视频,Dave Thomas展示了这段代码:

module Math
  class << self
    def is_even?(num)
      (num & 1) == 0 # What exactly is going on here? Particularly (num & 1)
    end
  end
end

puts Math.is_even? 1 # => false
puts Math.is_even? 2 # => true
Run Code Online (Sandbox Code Playgroud)

现在我明白了这里发生了什么,但我不知道类方法(num & 1)部分究竟发生了什么Math.is_even?.我知道这是一个按位操作,但这是关于它.有人可以向我解释这行代码的用途吗?谢谢.

ruby bitwise-operators

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

Ruby要求'文件'不起作用但需要'./file'.为什么?

我有一个充满ruby文件的文件夹,当我尝试在另一个文件中使用另一个文件时,require 'file'我得到一个LoadError但是当我使用时,require './file'一切正常.有人可以向我解释为什么会发生这种情况,如果有任何方法我可以在不添加文件的情​​况下需要./文件吗?

(目录图片): 替代文字

ruby require

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

Rails:为什么在调用`render'new'`时自定义url会改变?

我有一个控制器,用于控制联系页面上的联系我们表单.在routes.rb文件中我有一行说match '/contact', :to => 'feedback#new'.现在当表格填写正确时,一切正常; 网址是'/ contact'.但是,当表单未正确填写时,我的控制器renders 'new'和URL将更'/contact'改为'/feedback'.有人能告诉我为什么会发生这种情况以及我如何解决这个问题,以便如果验证被触发并且页面被渲染,那么网址是否/contact仍然存在/feedback?谢谢!

我的控制器代码: 在此输入图像描述

controller ruby-on-rails url-routing ruby-on-rails-3

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

RVM:如何使用来自不同红宝石的宝石?

我一直在使用RVM来管理我的红宝石和宝石.

当我第一次安装RVM时,我安装的Ruby版本就是1.9.2-p0.我最近安装了Ruby 1.9.2-p136,它在RVM中创建了一个新的Ruby.

我的问题是我想使用最新版本的Ruby的,可是我装下安装了宝石的1.9.2-p0目录,因为RVM保持宝石红宝石之间是完全独立的,并且我希望能够利用这些宝石,我的新版本,p-136而不不得不重新安装它们.

有没有办法让我的p-0Ruby 从我的Ruby中获取我的p-136Ruby?

ruby rvm

11
推荐指数
3
解决办法
2530
查看次数

:: MyClass Ruby作用域操作符有什么作用?

什么是::MyClass/MyModule范围运营商在Ruby中做的,什么是它的目的是什么?

ruby

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

Ruby:转义字符串中的特殊字符

我正在尝试编写一个与mysqli_real_escape_stringPHP 相同的方法.它需要一个字符串并逃脱任何"危险"的角色.我已经找了一种方法可以为我做这个,但我找不到一个.所以我试着自己写一个.

这就是我到目前为止(我在Rubular.com测试了模式并且它有效):

# Finds the following characters and escapes them by preceding them with a backslash. Characters: ' " . * / \ -
def escape_characters_in_string(string)
  pattern = %r{ (\'|\"|\.|\*|\/|\-|\\) }
  string.gsub(pattern, '\\\0') # <-- Trying to take the currently found match and add a \ before it I have no idea how to do that).
end
Run Code Online (Sandbox Code Playgroud)

我正在使用start_string我想改变的字符串,以及correct_string我想要start_string变成的字符串:

start_string = %("My" 'name' *is* -john- .doe. /ok?/ C:\\Drive)
correct_string = …
Run Code Online (Sandbox Code Playgroud)

ruby regex escaping

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

在模型验证失败的Rails中哪里呈现注释控制器?

我在我的rails应用程序中有一个简单的视频模型has_many评论.我在视频的节目页面上显示这些评论.当我提交表格时,一切正常; 但是,如果评论模型上存在验证错误,那么我的系统就会爆炸.如果评论模型上存在验证错误,我只想再次渲染视频的显示页面,并显示验证错误样式.如何在我的创建操作中执行此操作?非常感谢!

class CommentsController < ApplicationController
  def create
    @video = Video.find(params[:video_id])
    @comment = @video.comments.build(params[:comment])
    if @comment.save
      redirect_to @video, :notice => 'Thanks for posting your comments.'
    else
      render # what? What do I render in order to show the video page's show action with the validation error styling showing? Please help!
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

controller ruby-on-rails render

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

何时使用Cucumber以及何时使用RSpec?

我是Cucumber测试的新手,我正在尝试了解何时使用Cucumber以及何时使用RSpec.对于我的模型,我知道我应该用RSpec测试它们,而且我知道如果我写Cucumber故事,我不需要编写RSpec请求规范.我不知道何时使用视图和控制器的东西.我应该使用RSpec来测试我的视图和控制器,还是可以跳过它们,因为我使用Cucumber进行更高级别的测试?任何建议将不胜感激!谢谢!

cucumber rspec2 ruby-on-rails-3

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

为什么在C++中通过引用传递的参数不需要解引用运算符?

我是C++社区的新手,只是快速询问C++如何通过引用函数来传递变量.

如果要在C++中通过引用传递变量,可以&向要通过引用传递的任何参数添加一个.当你为一个被引用传递的变量赋值时为什么这么说variable = value;而不是说*variable = value

void add_five_to_variable(int &value) {
    // If passing by reference uses pointers,
    // then why wouldn't you say *value += 5?
    // Or does C++ do some behind the scene stuff here?
    value += 5; 
} 

int main() {

  int i = 1;
  add_five_to_variable(i);
  cout << i << endl; // i = 6

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

如果C++使用指针来实现幕后魔术,为什么不像指针一样需要解引用?任何见解都会非常感激.

c++ pointers reference

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

python/httpx/asyncio: httpx.RemoteProtocolError: 服务器已断开连接但未发送响应

我正在尝试优化我制作的一个简单的网络抓取工具。它从主页上的表中获取 URL 列表,然后转到每个“子”URL 并从这些页面获取信息。我能够成功地同步编写它并使用concurrent.futures.ThreadPoolExecutor(). 然而,我正在尝试优化它的使用asynciohttpx因为它们对于发出数百个 http 请求来说似乎非常快。

我使用编写了以下脚本asyncio,但是httpx,我不断收到以下错误:

httpcore.RemoteProtocolError: Server disconnected without sending a response.

RuntimeError: The connection pool was closed while 4 HTTP requests/responses were still in-flight.
Run Code Online (Sandbox Code Playgroud)

当我运行脚本时,我似乎不断失去连接。我什至尝试运行它的同步版本并得到相同的错误。我以为远程服务器阻止了我的请求,但是,我能够运行我的原始程序并毫无问题地从同一 IP 地址访问每个网址

什么会导致此异常以及如何解决它?

import httpx
import asyncio

async def get_response(client, url):
    resp = await client.get(url, headers=random_user_agent()) # Gets a random user agent.
    html = resp.text
    return html


async def main():
    async with httpx.AsyncClient() as client:
        tasks = []

        # …
Run Code Online (Sandbox Code Playgroud)

python web-scraping python-asyncio httpx

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