标签: gem

是否有基于一组参数生成URL的Ruby库/ gem?

Rails的URL生成机制(大多数polymorphic_url在某些时候路由)允许将至少为GET请求序列化的哈希传递到查询字符串中.获得这种功能的最佳方法是什么,但是在任何基本路径之上?

例如,我想要有以下内容:

generate_url('http://www.google.com/', :q => 'hello world')
  # => 'http://www.google.com/?q=hello+world'
Run Code Online (Sandbox Code Playgroud)

我当然可以编写自己的,完全符合我的应用程序的要求,但如果存在一些规范库来处理它,我宁愿使用它:).

ruby gem ruby-on-rails

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

Ruby gem的默认搜索路径是什么?即默认的GEM_HOME

Ruby gem的默认搜索路径是什么?我试图想我可以通过哪些目录gem--install-dir开关,这样我就不必设置环境变量GEM_HOME对被发现的宝石.

特别是,如果我安装gem jekyll via

$ gem install --bindir /usr/local/bin --install-dir /usr/local/lib/ruby/gems/1.8 jekyll
Run Code Online (Sandbox Code Playgroud)

然后/usr/local/bin/jekyll在没有明确设置的情况下找不到它的库GEM_HOME:

$ jekyll --help
/usr/lib/ruby/1.8/rubygems.rb:779:in `report_activate_error': Could not find RubyGem jekyll (>= 0) (Gem::LoadError)
    from /usr/lib/ruby/1.8/rubygems.rb:214:in `activate'
    from /usr/lib/ruby/1.8/rubygems.rb:1082:in `gem'
    from /usr/local/bin/jekyll:18
$ GEM_HOME=/usr/local/lib/ruby/gems/1.8 jekyll --help
Jekyll is a blog-aware, static site generator.
[ ... ]
Run Code Online (Sandbox Code Playgroud)

似乎ruby本身会查看Ruby变量中列出的目录,这些目录$LOAD_PATH可以通过环境变量进行扩充RUBYLIB.但是,rubygem系统在哪里搜索宝石?

ruby gem search path

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

如何在Windows上卸载所有红宝石?

如何在Windows上卸载所有ruby gems?单指令可以吗?

windows gem ruby-on-rails

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

为什么我在Ubuntu中安装JSON gem时出错?

使用Ubuntu,当我运行" bundle install"来设置我的Rails环境时,它会在JSON gem安装期间抛出一个错误:

Installing json (1.7.3) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/usr/bin/ruby1.9.1 extconf.rb 
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from extconf.rb:1:in `<main>'

Gem files will remain installed in /home/danny/.bundler/tmp/2040/gems/json-1.7.3 for inspection.
Results logged to /home/danny/.bundler/tmp/2040/gems/json-1.7.3/ext/json/ext/parser/gem_make.out
An error occured while installing json (1.7.3), and Bundler cannot continue.
Make sure that `gem install json -v '1.7.3'` succeeds before bundling.
Run Code Online (Sandbox Code Playgroud)

当我尝试只安装JSON 1.7.3 gem时,它也会给我一个错误:

Building native extensions.  This could take …
Run Code Online (Sandbox Code Playgroud)

ruby ubuntu gem json ruby-on-rails

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

创建包含rails模型的gem

我一直在阅读很多关于这个主题的内容,似乎没有什么能够满足我的需求.如果我重复或不清楚我对ruby和rails都是新手以及对stackoverflow的新手,我很抱歉.

我有一个现有的rails应用程序,里面有很多基础设施.我想采用它的一些模型,将它们嵌套在命名空间中,并将所有这些放入ruby gem中,以便在其他rails应用程序中使用.根据我的理解,rails的加载路径存在问题,因为它们是惯例,而定义另一个引擎的问题是因为你有两个并且它们会崩溃.

我一直在寻找指导或教程,以便在没有太多运气的情况下学习如何做到这一点,但我很肯定,如果有人可以指出我会很棒的话,那里会有一些东西.

我尝试使用引擎制作宝石会因碰撞或缺少导轨而失败.

我正在运行rails 3.2.3和ruby 1.9.3.

gem plugins model ruby-on-rails rails-engines

22
推荐指数
2
解决办法
6933
查看次数

NameError:未初始化的常量Gem :: SourceIndex

在访问主页时(成功运行后bundle install),新的rails应用程序出现此错误,未进行任何修改.

以下是版本号:

ruby: 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin12.2.1]

rails: 3.2.12

rvm: 1.18.14

gem: 2.0.0

bundler: 1.3.0.pre.8

打电话which ruby回报/Users/J/.rvm/rubies/ruby-1.9.3-p392/bin/ruby,看起来很可疑,对吧?

gem ruby-on-rails bundler

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

无法安装路缘宝石

它给了我错误

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

        /usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from extconf.rb:1:in `<main>'


Gem files will remain installed in /home/user1/.rvm/gems/ruby-1.9.3-p392/gems/curb-0.8.3 for inspection.
Results logged to /home/user1/.rvm/gems/ruby-1.9.3-p392/gems/curb-0.8.3/ext/gem_make.out
Run Code Online (Sandbox Code Playgroud)

rvm列表

rvm rubies

   ruby-1.9.3-p385 [ broken ]
=* ruby-1.9.3-p392 [ x86_64 ]
   ruby-2.0.0-p0 [ x86_64 ]

# => - current
# =* - current && default
# …
Run Code Online (Sandbox Code Playgroud)

ruby ubuntu gem curl ubuntu-12.10

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

在mac(libxml2)上安装nokogiri 1.6.0时出错

更新:已修复

我在另一个帖子中找到了答案.我使用的解决方法是告诉Nokogiri使用系统库:

NOKOGIRI_USE_SYSTEM_LIBRARIES=1 bundle install
Run Code Online (Sandbox Code Playgroud)

====

试图在Mac上安装nokogiri 1.6.0.在以前的版本中,我没有遇到任何问题.但1.6.0拒绝安装.这是错误:

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

    /Users/josenriq/.rvm/rubies/ruby-1.9.3-head/bin/ruby extconf.rb
Extracting libxml2-2.8.0.tar.gz into tmp/i686-apple-darwin11/ports/libxml2/2.8.0... ERROR
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Archive contains obsolescent base-64 headers
tar: Read 3 bytes from /Users/josenriq/.rvm/gems/ruby-1.9.3-head@wdi/gems/nokogiri-1.6.0/ports/archives/libxml2-2.8.0.tar.gz
tar: Error exit delayed from previous errors
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably …
Run Code Online (Sandbox Code Playgroud)

ruby gem libxml2 nokogiri

22
推荐指数
1
解决办法
3717
查看次数

启动Rails服务器时出错:未定义方法'configure'

我是rails的新手,并通过Hartl的教程.一切都很好,直到我第二次尝试做教程并创建了另一个试图使用最新版本的rails的项目.当我尝试rails server从app文件夹加载时,我收到以下错误.

$ rails s
=> Booting WEBrick
=> Rails 4.0.4 application starting in development on
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
Exiting
/Users/sierra/Desktop/sample_app_2/config/environments/development.rb:1:in
  `<top (required)>': undefined method `configure' for
  #<SampleApp2::Application:0x00000101a74610> (NoMethodError)
Run Code Online (Sandbox Code Playgroud)

我的Gemfile直接来自Hartl教程:

source 'https://rubygems.org'
ruby '2.1.0'
#ruby-gemset=railstutorial_rails_4_0

gem 'rails', '4.0.4'

group :development, :test do
  gem 'sqlite3', '1.3.8'
  gem 'rspec-rails', '2.13.1'
end

group :test do
  gem 'selenium-webdriver', '2.35.1'
  gem 'capybara', '2.1.0'
end

gem 'sass-rails', '4.0.1'
gem 'uglifier', '2.1.1' …
Run Code Online (Sandbox Code Playgroud)

gem ruby-on-rails railstutorial.org

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

"gem install rails"因DNS错误而失败

$ rvm use
Using /home/owner/.rvm/gems/ruby-2.1.2
$ gem install rails
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
    Errno::ECONNREFUSED: Connection refused - connect(2) for "your-dns-needs-immediate-attention.network" port 80 (http://your-dns-needs-immediate-attention.network/quick/Marshal.4.8/thread_safe-0.3.4.gemspec.rz)
$ gem update --system
...
$ gem -v
2.4.1
$ gem install rails
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
    Errno::ECONNREFUSED: Connection refused - connect(2) for "your-dns-needs-immediate-attention.network" port 80 (http://your-dns-needs-immediate-attention.network/quick/Marshal.4.8/rails-4.1.5.gemspec.rz)
Run Code Online (Sandbox Code Playgroud)

我试过了:

  1. 安装其他宝石(设计,主动记录).我犯了同样的错误.
  2. 重新安装RVM
  3. 运行 gem update --system
  4. 将静态DNS设置为谷歌的8.8.8.8和8.8.4.4
  5. 添加https://production.cf.rubygems.org为宝石源(参见下面的错误)
  6. 在我之前的12.04上安装14.04.错误仍然存​​在.错误的来源必须在我的计算机之外.

有关我的连接的其他信息:

  1. 我可以https://rubygems.org/通过我的浏览器连接
  2. 我的调制解调器的防火墙已完全禁用.
  3. $ curl -v --head https://rubygems.org输出:http: //pastebin.com/ca6DAvaU …

ruby dns gem ruby-on-rails

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