javascript

java

python

c#

node.js

android

reactjs

c++

php

jquery

html

css

git

ruby-on-rails

.net

ios

sql

c

string

ruby

性能-是什么让Ruby变慢?

Ruby在某些方面很慢。 但是其中哪一部分最有问题?

垃圾收集器在多大程度上影响性能? 我知道我曾经有一段时间独自运行垃圾收集器花费了几秒钟,尤其是在使用OpenGL库时。

我将矩阵数学库与Ruby一起使用时,速度特别慢。 ruby如何实现基本数学是否存在问题?

Ruby中是否有任何动态功能根本无法有效实现? 如果是这样,其他语言(例如Lua和Python)如何解决这些问题?

最近是否有工作显着改善了性能?

trans by 2019-10-15T11:39:16Z

ruby-如何从Rails Modu访问URL助手

我有一个带有功能的模块。 它位于/lib/contact.rb中:

module Contact
  class << self
    def run(current_user)
      ...
    end
  end
end

我想访问模块内的URL帮助程序,例如“ users_path”。 我怎么做?

trans by 2019-10-15T06:08:26Z

如何将CSS与Rails应用程序中的ruby一起使用?

如何在RoR中使用CSS? 当我从外部链接时,我永远看不到文件。 我将.css文件cp到我能想到的每个文件夹...视图,控制器,模板,似乎没有任何作用。

要使用Rails应用程序启用外部CSS文件,我需要做什么? 我是Rails的新手,如果这是基本知识,请原谅我。

trans by 2019-10-15T04:41:52Z

ruby-如何在Rails / RSpec中测试异常引发?

有以下代码:

def index
    @car_types = car_brand.car_types
end

def car_brand
    CarBrand.find(params[:car_brand_id])
    rescue ActiveRecord::RecordNotFound
        raise Errors::CarBrandNotFound.new 
end

我想通过RSpec对其进行测试。 我的代码是:

it 'raises CarBrandNotFound exception' do
    get :index, car_brand_id: 0
    expect(response).to raise_error(Errors::CarBrandNotFound)
end

ID等于0的汽车品牌不存在,因此我的控制器代码引发了Errors :: CarBrand Not Found,但是我的测试代码告诉我什么都没有提出。 我该如何解决? 我怎么了

trans by 2019-10-15T02:15:04Z

ruby-Vim Command-T插件错误:无法加载C扩展名

我正在尝试安装Command-T插件。

我按照此注释中的说明编译了vim:使用ruby支持(+ ruby)安装vim。

所以现在有了+ ruby标志,但是当我尝试使用插件时,仍然出现此错误:

command-t.vim could not load the C extension
Please see INSTALLATION and TROUBLE-SHOOTING in the help              
For more information type:    :help command-t

我的系统上有红宝石:

> ruby -v
> ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]

建议?

trans by 2019-10-15T00:20:49Z

macos-如何在Mac OS X Lion中安装Ruby 1.9.3?

我正在尝试安装Ruby 1.9.3,但遇到了问题。我安装了RVM,然后键入:

rvm install 1.9.3

输出显示:

ERROR: Error running ' ./configure....

日志显示:

configure: WARNING: unrecognized options: --with-libyaml-dir 
checking build system type... x86_64-apple-darwin11.2.0 
checking host system type... x86_64-apple-darwin11.2.0 
checking target system type...x86_64-apple-darwin11.2.0 
checking whether the C compiler works... no
configure: error: in `/Users/myuser/.rvm/src/ruby-1.9.3-p0':
configure: error: C compiler cannot create executables See `config.log' for more details

我从App Store下载了新的XCode并进行了安装。

trans by 2019-10-14T10:35:28Z

Ruby on rails-STI,一个骗局

我是Rails的新手,但我对这个设计问题有些困惑,这可能很容易解决,但我无济于事:我有两种不同的广告:精彩集锦和特价商品。 它们都具有相同的属性:标题,描述和一张图像(带回形针)。 它们还具有相同的操作类型:索引,新建,编辑,创建,更新和销毁。

我这样设置了一个STI:

广告模型:ad.rb

class Ad < ActiveRecord::Base
end

讨价还价模型:bargain.rb

class Bargain < Ad
end

高亮模型:highlight.rb

class Highlight < Ad
end

问题是我只希望有一个控制器(AdsController)来执行我对廉价交易或高亮显示的操作,具体取决于URL,例如www.foo.com/bargains [/ ...]或www.foo。 com / highlights [/ ...]。

例如:

  • 获取www.foo.com/highlights =>所有突出显示的广告的列表。
  • 获取www.foo.com/highlights/new =>表单以创建新的突出显示等等...

我怎样才能做到这一点?

谢谢!

trans by 2019-10-13T18:46:38Z

ruby-查找与给定条件匹配的元素的索引

给定一个数组,如何找到与给定条件匹配的元素的所有索引?

例如,如果我有:

arr = ['x', 'o', 'x', '.', '.', 'o', 'x']

要找到项目为x的所有索引,我可以这样做:

arr.each_with_index.map { |a, i| a == 'x' ? i : nil }.compact   # => [0, 2, 6]

要么

(0..arr.size-1).select { |i| arr[i] == 'x' }   # => [0, 2, 6]

有没有更好的方法来实现这一目标?

trans by 2019-10-13T12:09:56Z

jquery-HAML中Javascript中的Ruby方法

我有一个jQuery脚本,它将一个新字段添加到窗体,并且此字段包含来自数组的动态信息。 问题是我无法弄清楚如何添加一个array.each来填充javascript中select字段的选项而不会破坏HAML缩进并导致错误。

这是我的最佳尝试,不起作用:

%script(type="text/javascript")  
  $('#mylink').click(function() {  
  $('#mylink').after('<select>  
  - myarray.each do |options|  
     <option value="#{options.id}">#{options.name}</option>  
  </select>);  
  )};

还尝试了:javascript过滤器,但没有运气。

trans by 2019-10-13T11:29:46Z

红宝石-野外黄瓜的好例子?

几年前,我已经尝试了Cucumber的几个项目,并希望再尝试一次。 我真的不需要另一篇“开始黄瓜”文章。 取而代之的是,我想看看野外的一些实际用途,即其他Cucumber用户会认为它们是惯用且无反图案的。

那么,您认为大型项目中实际黄瓜规格的最佳示例是什么?

trans by 2019-10-13T07:27:02Z

如何处理Ruby on Rails错误:“请安装postgresql适配器:'gem install activerecord-postgresql-adapter'”

运行使用ActiveRecord框架的Ruby on Rails(RoR)应用程序或Ruby代码,您会收到错误消息:

请安装postgresql适配器:   gem install activerecord-postgresql-adapter

尝试运行:

gem install activerecord-postgresql-adapter

也失败了,让您茫然。

trans by 2019-10-13T07:00:08Z

红宝石-Rails ActiveRecord:查找除当前用户外的所有用户

我觉得这应该很简单,但是我的大脑正在短路。 如果我有一个代表当前用户的对象,并且想查询除当前用户外的所有用户,那么考虑到当前用户有时可能是will_paginate,我该怎么做?

这就是我现在正在做的事情:

def index
  @users = User.all
  @users.delete current_user
end

我不喜欢对查询结果进行后处理。 除了感到有点不对劲之外,如果我将查询转换为使用will_paginate运行,我认为这不会很好地工作。关于如何使用查询执行此操作的任何建议? 谢谢。

trans by 2019-10-13T05:02:34Z

红宝石-使用Markdown获取带下划线的文本

我将BlueCloth用作Ruby的Markdown库,但找不到用于对文本加下划线的语法。 它是什么?

trans by 2019-10-12T23:37:15Z

红宝石-rbenv,rvm和chruby有什么区别?

我是Ruby和Rails的新手。 我正在寻找每个功能和优点/缺点的纯粹客观清单。 为了避免出现这种情况,除非您已使用全部3个系统,否则请不要回答。

trans by 2019-10-12T08:01:44Z

Ruby和Ruby on Rails有什么区别?

在过去的几天里,我一直在学习Ruby,并且我注意到有Ruby on Rails。

两者有什么区别? 他们一起工作吗? 语法是否相同?

trans by 2019-10-11T09:37:44Z

模块-何时在Ruby中使用`require`,`load`或`autoload`?

我了解Ruby中autoloadrequireautoload之间的细微差别,但是我的问题是,您怎么知道要使用哪个?

除了能够在匿名模块中“包装” autoload之外,require似乎是首选。

但是autoload然后允许您延迟加载文件-听起来很棒,但是我不确定您从require获得的收益

一种方法优先于另一种方法吗? 是否存在一种方法脱颖而出的情况?

trans by 2019-10-10T21:05:35Z

Ruby:捕获异常后继续循环

基本上,我想做这样的事情(使用Python或类似的命令式语言):

for i in xrange(1, 5):
    try:
        do_something_that_might_raise_exceptions(i)
    except:
        continue    # continue the loop at i = i + 1

如何在Ruby中执行此操作? 我知道有redoretry关键字,但它们似乎重新执行“ try”块,而不是继续执行循环:

for i in 1..5
    begin
        do_something_that_might_raise_exceptions(i)
    rescue
        retry    # do_something_* again, with same i
    end
end
trans by 2019-10-10T19:02:25Z

ruby-'require':无法运行“ rails服务器”时无法加载此类文件-'nokogiri \ nokogiri'(LoadError)

我正在使用DevKit在Windows 8.1上运行Ruby 2.2.1的全新安装。 安装后,我运行:

gem install rails
rails new testapp
cd testapp
rails server

保留其他所有默认设置。

当我收到错误消息而不是运行服务器时,该过程在最后一行失败

in 'require': cannot load such file -- 'nokogiri\nokogiri' (LoadError)

每次都会发生这种情况,我环顾四周并尝试了发现的所有问题来修复它,但到目前为止没有任何效果。

这是什么问题,如何使一个简单的测试Rails应用程序正常工作?

trans by 2019-10-10T04:45:17Z

ruby-gem安装失败,openssl失败

我尝试在OSX Mountain Lion上安装cocoapods([http://cocoapods.org/)]。

 moshe-mbp:~ moshem$ gem install cocoapods
 ERROR:  Could not find a valid gem 'cocoapods' (>= 0), here is why:
      Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0      state=SSLv3 read server key exchange B: bad ecpoint (https://rubygems.org/latest_specs.4.8.gz)

首先我尝试

 rvm reinstall all --force

然后我尝试

 brew upgrade openssl

    ==> Upgrading openssl
    ==> Downloading http://openssl.org/source/openssl-1.0.1e.tar.gz
    Already downloaded: /Library/Caches/Homebrew/openssl-1.0.1e.tar.gz
    ==> perl ./Configure --prefix=/usr/local/Cellar/openssl/1.0.1e --openssldir=/usr/local/etc/openssl zlib-dynamic shared d
    ==> make
    ==> make test
    ==> make install MANDIR=/usr/local/Cellar/openssl/1.0.1e/share/man MANSUFFIX=ssl
    ==> Caveats
    To install updated CA certs from Mozilla.org:

        brew install curl-ca-bundle

    This formula is keg-only: so it was not symlinked into /usr/local.

    Mac OS X already provides this software and installing another version in
    parallel can cause all kinds of trouble.

    The OpenSSL provided by OS X is too old for some software.

    Generally there are no consequences of this for you. If you build your
    own software and it requires this formula, you'll need to add to your
    build variables:

        LDFLAGS:  -L/usr/local/opt/openssl/lib
        CPPFLAGS: -I/usr/local/opt/openssl/include

    ==> Summary
    🍺  /usr/local/Cellar/openssl/1.0.1e: 429 files, 15M, built in 5.1 minutes

然后我尝试了

openssl version

仍然(!)获取旧版本

moshe-mbp:~ moshem$ openssl version
OpenSSL 0.9.8r 8 Feb 2011
moshe-mbp:~ moshem$ 

我究竟做错了什么? 如何安装cocoapods gem?

谢谢


编辑,尝试@sean建议:

moshe-mbp:~ moshem$ brew update
Updated Homebrew from 672af665 to 10b4d426.
==> Updated Formulae
bash        wireshark
moshe-mbp:~ moshem$ brew install openssl
Error: openssl-1.0.1e already installed
moshe-mbp:~ moshem$ brew link openssl --force
Linking /usr/local/Cellar/openssl/1.0.1e... 1139 symlinks created
moshe-mbp:~ moshem$ brew install curl-ca-bundle
Error: curl-ca-bundle-1.87 already installed
moshe-mbp:~ moshem$ 
moshe-mbp:~ moshem$ openssl version
OpenSSL 0.9.8r 8 Feb 2011
moshe-mbp:~ moshem$ gem install cocoapods
ERROR:  Could not find a valid gem 'cocoapods' (>= 0), here is why:
          Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server key exchange B: bad ecpoint (https://rubygems.org/latest_specs.4.8.gz)

修改Brew医生的问题后进行编辑(2)

moshe-mbp:~ moshem$ gem install cocoapods
ERROR:  Could not find a valid gem 'cocoapods' (>= 0), here is why:
          Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server key exchange B: bad ecpoint (https://rubygems.org/latest_specs.4.8.gz)
moshe-mbp:~ moshem$ openssl version
OpenSSL 0.9.8r 8 Feb 2011
moshe-mbp:~ moshem$ brew update
Updated Homebrew from 10b4d426 to 6a00bc3c.
==> Updated Formulae
clozure-cl  python  python3
moshe-mbp:~ moshem$ brew install openssl
Error: openssl-1.0.1e already installed
moshe-mbp:~ moshem$ 
moshe-mbp:~ moshem$ echo $PATH
/Users/moshem/.rvm/gems/ruby-2.0.0-p0/bin:/Users/moshem/.rvm/gems/ruby-2.0.0-p0@global/bin:/Users/moshem/.rvm/rubies/ruby-2.0.0-p0/bin:/Users/moshem/.rvm/bin:/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin:/tools:/platforms:/platform-tools:
moshe-mbp:~ moshem$ 

更改/ etc / paths后进行编辑

我将/ etc / path文件编辑为:

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

完全关闭并重新打开的终端,它仍然会启动旧版本的openssl!

为什么?

moshe-mbp:~ moshem$ env $PATH
env: /Users/moshem/.rvm/gems/ruby-2.0.0-p0/bin:/Users/moshem/.rvm/gems/ruby-2.0.0-p0@global/bin:/Users/moshem/.rvm/rubies/ruby-2.0.0-p0/bin:/Users/moshem/.rvm/bin:/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin:/tools:/platforms:/platform-tools

编辑,我的bash_profile

source "`brew --prefix grc`/etc/grc.bashrc"

export PATH=${JAVA_HOME}/bin:$PATH
export PATH="$PATH:$ANDROID_SDK/tools:$ANDROID_SDK/platforms:$ANDROID_SDK/platform-tools:$ANDROID_NDK"

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

顺便说一句,/ etc / grc.bashrc在我的机器上似乎不存在。 此行和末尾的rvm行均由已安装的脚本添加


编辑

moshe-mbp:~ moshem$ rvm pkg install openssl 
Fetching openssl-1.0.1c.tar.gz to /Users/moshem/.rvm/archives
Extracting openssl to /Users/moshem/.rvm/src/openssl-1.0.1c
Configuring openssl in /Users/moshem/.rvm/src/openssl-1.0.1c.
Compiling openssl in /Users/moshem/.rvm/src/openssl-1.0.1c.
Installing openssl to /Users/moshem/.rvm/usr

Please note that it's required to reinstall all rubies:

    rvm reinstall all --force

Updating openssl certificates
moshe-mbp:~ moshem$ openssl version
OpenSSL 1.0.1e 11 Feb 2013


moshe-mbp:~ moshem$ gem source -r http://rubygems.org/
http://rubygems.org/ removed from sources
moshe-mbp:~ moshem$ gem source -a https://rubygems.org/
Error fetching https://rubygems.org/:
    SSL_connect returned=1 errno=0 state=SSLv3 read server key exchange B: bad ecpoint (https://rubygems.org/specs.4.8.gz)
moshe-mbp:~ moshem$ gem install cocoapods
ERROR:  Could not find a valid gem 'cocoapods' (>= 0) in any repository
trans by 2019-10-10T02:11:08Z

ruby on rails-如何在请求sp中存根ApplicationController方法

我需要在Rspec / capybara请求规范中存根current_user方法的响应。 该方法在session[:user_id]中定义,并使用helper_method。 该方法应仅返回一个用户ID。 在测试中,我希望此方法每次都返回相同的用户ID。

另外,我可以通过在规范中设置session[:user_id](这是current_user返回的值)来解决我的问题……但是,这似乎也不起作用。

这些都有可能吗?

编辑:

这是我所拥有的(它不起作用。它只运行常规的current_user方法)。

require 'spec_helper'

describe "Login" do

   before(:each) do
     ApplicationController.stub(:current_user).and_return(User.first)
   end

  it "logs in" do
    visit '/'
    page.should have_content("Hey there user!")
  end

end

也无法正常工作:

require 'spec_helper'

describe "Login" do

  before(:each) do
    @mock_controller = mock("ApplicationController") 
    @mock_controller.stub(:current_user).and_return(User.first)
  end

  it "logs in" do
    visit '/'
    page.should have_content("Hey there user!")
  end

end
trans by 2019-10-09T23:57:14Z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 下一页 共57页