标签: ruby

尝试从Rails控制器调用helper方法时出现NoMethodError

我正NoMethodError试图从我的一个控制器类中访问我的一个辅助模块中定义的方法.My Rails应用程序使用helper带有:all符号的类方法,如下所示:

class ApplicationController < ActionController::Base
  helper :all
  .
  .
end
Run Code Online (Sandbox Code Playgroud)

我的理解是,这应该使我的所有控制器类自动包含app/helpers目录中的所有辅助模块,因此将所有方法混合到控制器中.它是否正确?

如果我include在控制器中明确指出了辅助模块,那么一切正常.

ruby ruby-on-rails

73
推荐指数
7
解决办法
6万
查看次数

在Ruby中,如何检查方法"foo =()"是否已定义?

在Ruby中,我可以定义一个方法foo =(bar):

irb(main):001:0> def foo=(bar)
irb(main):002:1>   p "foo=#{bar}"
irb(main):003:1> end
=> nil
Run Code Online (Sandbox Code Playgroud)

现在我想检查它是否已定义,

irb(main):004:0> defined?(foo=)
SyntaxError: compile error
(irb):4: syntax error, unexpected ')'
 from (irb):4
 from :0
Run Code Online (Sandbox Code Playgroud)

在这里使用的正确语法是什么?我假设必须有一种方法来逃避"foo =",以便它被解析并正确传递给定义的?运营商.

ruby syntax-error

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

为什么Ruby有TrueClass和FalseClass而不是一个布尔类?

当我发现这个值时,我正在努力序列化值.Ruby有一个TrueClass类和一个FalseClass类,但它没有Boolean类.我想知道为什么会这样.

我看到使用a的一些优点Boolean; 例如,字符串解析可以集中在它上面.

Ruby开发人员比我聪明,所以必须有很多我没看到的好理由.但是现在看起来我喜欢OneClass和一个TwoClass而不是Fixnum.

ruby language-design

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

在Ubuntu上为Ruby on Rails安装PostgreSQL

我目前在Ubuntu 12.04中通过RVM安装了Ruby on Rails.默认数据库是在SQLite3中设置的,但是为了推送到Heroku,我想切换到PostgreSQL.我怎么能做到这一点?

ruby postgresql ubuntu ruby-on-rails heroku

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

无法构建gem本机扩展 - Rails安装

我一直在根据edX在线课程的指令安装Ruby on Rails.

以下是终端命令列表,以及相应的输出:

$ sudo apt-get install ruby1.9.1
Run Code Online (Sandbox Code Playgroud)

安装成功

$ wget http://production.cf.rubygems.org/rubygems/rubygems-1.8.24.tgz
$ tar zxvf ruby-1.8.24.tgz
$ cd ruby-1..8.24
$ sudo ruby setup.rb
RubyGems 1.8.24 installed

== 1.8.24 / 2012-04-27

* 1 bug fix:

  * Install the .pem files properly. Fixes #320
  * Remove OpenSSL dependency from the http code path


------------------------------------------------------------------------------

RubyGems installed the following executables:
    /usr/bin/gem1.9.1
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切看起来都很好,但我试图安装rails并失败:

$ sudo gem install rails
Fetching: i18n-0.6.1.gem (100%)
Fetching: multi_json-1.3.6.gem (100%)
Fetching: activesupport-3.2.8.gem (100%)
Fetching: builder-3.0.3.gem (100%)
Fetching: activemodel-3.2.8.gem (100%) …
Run Code Online (Sandbox Code Playgroud)

ruby rubygems ruby-on-rails

73
推荐指数
3
解决办法
10万
查看次数

如何在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
Run Code Online (Sandbox Code Playgroud)

我想通过RSpec测试它.我的代码是:

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

id等于0的CarBrand不存在,因此我的控制器代码引发了Errors :: CarBrandNotFound,但我的测试代码告诉我没有引发任何内容.我该如何解决?我错了什么?

ruby rspec ruby-on-rails

73
推荐指数
4
解决办法
4万
查看次数

therubyracer - Gem :: Ext :: BuildError:错误:无法构建gem原生扩展

我正在尝试在Mavericks上安装以下gem版本

  • libv8(3.16.14.3)
  • therubyracer(0.12.1)

显然,therubyracer宝石取决于libv8.

1)安装libv8

什么是libv8?我的一些研究似乎表明它是Google Chrome使用的某种javascript库?

我在安装它时遇到了麻烦,但是这个很棒的帖子既有我的错误,也有关于如何绕过它的解释清楚的答案.

所以我安装libv8

gem install libv8 -- --with-system-v8
Run Code Online (Sandbox Code Playgroud)

这是我的理解,这安装了gem,但使用我的本地系统安装v8库而不是... gem附带的版本?无论哪种方式,它都是成功的.

2)安装therubyracer

在下一步中,我在安装therubyracergem时遇到了麻烦.我不太确定这个gem是做什么的,只是因为它是我正在尝试的rails项目的依赖项bundle install.

它给了我以下错误:

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    /Users/jeeves.butler/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb 
checking for main() in -lpthread... yes
checking for main() in -lobjc... yes
checking for v8.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details. …
Run Code Online (Sandbox Code Playgroud)

ruby gcc therubyracer libv8 osx-mavericks

73
推荐指数
6
解决办法
4万
查看次数

RuboCop:线路太长< - 如何忽略

我刚刚将RuboCop添加到rails项目中并安装了Sublime软件包以在编辑器中查看RuboCop建议.我试图弄清楚如何从80个字符更改最大行长度,或者完全忽略规则.

目前正在使用中:

ruby ruby-on-rails sublimetext3 rubocop

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

如何在Mac OS Sierra 10.12上安装Nokogiri

我在Mac OS Sierra 10.12上安装Nokogiri(1.6.8.1)时遇到了麻烦.

我尝试使用brew install libxml2 libxslt然后使用命令行选项引用安装目录,但它没有帮助.

ruby nokogiri

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

Ruby无法加载此类文件-active_support / core_ext / object / blank

我正在尝试运行,brew doctor但系统弹出错误消息

/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:在`require'中:无法加载此类文件-active_support / core_ext /对象/空白(LoadError)

在线搜索,另一篇文章建议仅“ gem install activesupport”,但随后我遇到了以下错误:

ERROR:  Error installing activesupport:
    i18n requires Ruby version >= 2.3.0.
Run Code Online (Sandbox Code Playgroud)

我也尝试过rvm安装ruby-2.3.0,但再次弹出相同的错误

[2019-02-26 10:07:41] requirements_osx_brew_libs_install
requirements_osx_brew_libs_install ()  { 
    brew install "$@" --force || { 
        \typeset ret=$?;
        requirements_osx_brew_libs_error "installation";
        return $ret
    } } current path: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib
PATH=/Users/{user_name}/.aw/pex_resources/scripts/binaries:/usr/local/sbin:/Users/fengjiao/.rbenv/shims:/Users/{user_name}/.nvm/v0.10.32/bin:/Users/fengjiao/bin:/usr/local/sbin:/usr/local/bin:/Users/{user_name}/.rbenv/shims:/Users/{user_name}/.nvm/v0.10.32/bin:/Users/{user_name}/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/munki:/opt/X11/bin:/Users/fengjiao/gocode/bin:/Users/{user_name}/.rvm/bin
command(10): requirements_osx_brew_libs_install autoconf automake
libtool pkg-config coreutils libyaml readline libksba openssl@1.1
++ brew install autoconf automake libtool pkg-config coreutils libyaml readline libksba openssl@1.1 --force
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in
`require': cannot load such file --
active_support/core_ext/object/blank (LoadError) …
Run Code Online (Sandbox Code Playgroud)

ruby homebrew rubygems

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