标签: gem

Rails引擎 - Gems依赖项,如何将它们加载到应用程序中?

我在这里做引擎,它可以独立工作.

当我将它转换为gem并将其加载到另一个应用程序中时,我得到了许多未定义的错误,来自我的引擎gem的依赖.

这是gemspec:

s.add_dependency('paperclip')
s.add_dependency('jquery-rails')
s.add_dependency('rails3-jquery-autocomplete')
s.add_dependency('remotipart')
s.add_dependency('cancan')
Run Code Online (Sandbox Code Playgroud)

在应用程序中,当我进行bundle安装时,它列出了所有这些依赖项,但是当我运行应用程序时,我收到了很多未定义的方法错误(例如来自paperclip的has_attachment).似乎应用程序不加载引擎依赖项.这是默认行为吗?我可以改变吗?引擎内部的插件也发生了同样的事情.

如果我手动插入那些宝石,在应用程序Gemfile中,所有工作......

gem dependencies rails-engines ruby-on-rails-3

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

什么是Ruby宝石?

我在Google上搜索过,我刚刚发现了gem 的用途.如,宝石安装等

是.rb脚本的宝石集合吗?

如果我构建了一系列脚本,例如包含Google翻译功能的脚本,那么分发使用gem的首选方法是什么?

如果没有,我将如何分发此代码?

ruby gem

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

使用命令行中的bundler将gem添加到gemfile

使用节点包管理器时,您可以指定npm install --save mynodemodule自动弹出模块的位置package.json

我想知道是否有一个Bundler命令允许你从命令行添加gem和版本到gemfile?

例如 bundle install --save nokogiri

ruby gem bundler

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

卸载所有宝石Ruby 2.0.0

似乎ruby 2.0.0在混合中添加了"默认"宝石,并且通过gem卸载使它们无法移除.

如何删除所有非默认宝石?

ruby gem ruby-2.0

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

安装坚固时发生错误

按照本教程[ link ]在专用服务器上安装gitlab.我需要 :

sudo -u git -H bundle install --deployment --without development test postgres aws
Run Code Online (Sandbox Code Playgroud)

但安装坚固时发生错误:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /usr/local/bin/ruby extconf.rb
checking for cmake... no
ERROR: CMake is required to build Rugged.
*** 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.  You may
need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog …
Run Code Online (Sandbox Code Playgroud)

git gem ruby-on-rails gitlab rugged

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

Rubygems不会安装在OS X Lion上

我曾经对红宝石,宝石和所有相关的东西都没有任何问题.但在安装X Code Developer Tools并升级到Lion后,宝石无法安装.

我得到每个宝石的以下错误.这是sqlite的消息作为示例:

Building native extensions.  This could take a while...
ERROR:  Error installing sqlite3:
ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h

Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/sqlite3-1.3.4 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/sqlite3-1.3.4/ext/sqlite3/gem_make.out
Run Code Online (Sandbox Code Playgroud)

什么地方出了错?怎么解决?

ruby macos gem rubygems ruby-on-rails

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

Bundler无法为Rails 4.0.0找到gem"railties"的兼容版本

我想升级到Rails的4.0.0,和我换的宝石版本sass-railscoffee-rails.我需要在升级到Rails 4之前railscoffee-rails之前解决这个gem冲突.

当我运行时,bundle update这是我得到的输出:

$ bundle update
Updating git://github.com/pilu/web-app-theme.git
Fetching source index from https://rubygems.org/
Resolving dependencies..............
Bundler could not find compatible versions for gem "railties":
  In Gemfile:
    rails (= 4.0.0) ruby depends on
      railties (= 4.0.0) ruby

    coffee-rails (= 4.0.0) ruby depends on
      railties (4.0.0.rc2)
Run Code Online (Sandbox Code Playgroud)

我的Gemfile:

source 'https://rubygems.org'

gem 'rails', '4.0.0'

gem 'cancan'
gem 'client_side_validations'
gem 'devise', '~> 1.5.3'
gem 'dynamic_form'
gem 'execjs'
gem 'haml'
gem 'httparty'
gem …
Run Code Online (Sandbox Code Playgroud)

gem ruby-on-rails railtie ruby-on-rails-4

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

我如何要求特定版本的红宝石宝石?

具体来说,红宝石oci8宝石.我安装了1.0.7和2.0.4.我想要1.0.7.

我可以只需要oci8,但我没有得到我想要的版本.

irb(main):001:0> require 'oci8'
=> true
irb(main):002:0> OCI8::VERSION
=> "2.0.4"
Run Code Online (Sandbox Code Playgroud)

我可以要求使用文件的完整路径,它可以工作,但不会是可移植的:

irb(main):001:0> require 'C:\Ruby\lib\ruby\gems\1.8\gems\ruby-oci8-1.0.7-x86-mswin32-60\lib\oci8'
=> true
irb(main):002:0> OCI8::VERSION
=> "1.0.7"
Run Code Online (Sandbox Code Playgroud)

我可以使用gem命令来询问我想要的版本,但它似乎没有实际加载库:

irb(main):001:0> gem 'ruby-oci8', :lib=>'oci8', :version=>'=1.0.7'
=> true
irb(main):002:0> OCI8::VERSION
NameError: uninitialized constant OCI8
    from (irb):2
Run Code Online (Sandbox Code Playgroud)

如果加载库,我肯定会支持这种最后的方法,而不仅仅是确认它存在于我的系统中.我错过了什么?

ruby gem version oci8

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

检查Ruby Gem的可用性

有没有办法通过Gem模块检查当前是否安装了某些gem?从ruby代码,而不是通过执行'宝石列表'...

澄清 - 我不想加载库.我只是想检查它是否可用,所以所有的rescue LoadError解决方案都没有帮助我.此外,我不在乎宝石本身是否有效,只是它是否已安装.

ruby gem rubygems packages

42
推荐指数
5
解决办法
2万
查看次数

Rails 3.1插件gem,虚拟测试应用程序,rspec

所以Rails 3.1附带了一个鲜为人知的"rails g plugin new"生成器,它为你提供了一个适合rails gem插件的骨架.[http://guides.rubyonrails.org/plugins.html#or-generate-a-gemified-plugin]

这样做的一个有用的事情是为Test :: Unit的测试设置方便.它为您提供了一个基本的虚拟Rails应用程序,您的测试可以在上下文中运行,以测试仅在Rails应用程序副本中运行的"引擎"行为.(它把它放在./test/dummy中).但是你的测试仍然在my_gem/test中,测试不会存在于虚拟app中.并且my_gem/test/test_helper.rb在那里编写,测试将在虚拟应用程序的上下文中运行,在../dummy/config/environment上启动.

我之所以这样描述是因为我认为很多人都不知道这个新的发电机,它可以很好地设置.

但我的问题是,有没有人想出如何用rspec做这个呢?我曾尝试按照相同的原则DIY为rails specing中的rspec设置这样的东西,但我遇到了各种令人困惑的障碍,我希望也许别人已经弄明白了(或者有兴趣搞定它对我们其他人来说,嘿).

gem rspec ruby-on-rails ruby-on-rails-plugins rspec-rails

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