小编Thi*_*ilo的帖子

当我运行bundle install时,如何为gem安装传递参数?

我将pg gem添加到我的gemfile中

gem 'pg'
Run Code Online (Sandbox Code Playgroud)

当我跑bundle install,我得到这个错误:

Installing pg (0.10.1) with native extensions /Users/ben/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/rubygems/installer.rb:483:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

/Users/benhartney/.rvm/rubies/ruby-1.9.2-p0/bin/ruby extconf.rb 
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
 --with-pg-config=/path/to/pg_config
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file …
Run Code Online (Sandbox Code Playgroud)

gem ruby-on-rails bundler ruby-on-rails-3

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

ruby散列中的条件键/值

是否有一个很好的(一行)方式在ruby中编写一个哈希值,只有条件满足时才有一些条目?我想到了

{:a => 'a', :b => ('b' if condition)}
Run Code Online (Sandbox Code Playgroud)

但是,:b == nil如果条件没有得到满足,那就离开了.我意识到这可以在两行左右轻松完成,但在一行中会更好(例如将哈希传递给函数时).

我错过了(还)另一个红宝石的惊人功能吗?;)

ruby

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

Rails 3.1资产预编译 - 包括所有javascript文件

我希望Rails 3.1能够获取更多我的资产以进行预编译.特别是,用于编译文件的默认匹配器不会添加.js文件vendor/assets/javascripts.我可以将资源添加到config.assets.precompile列表中,但这看起来很烦人.我不想在application.js清单中引用它们,因为我不希望它们包含在所有页面中.

总之,任何方式请求获取所有.js文件vendor/assets/javascripts得到预编译rake assets:precompile,但没有将它们包含在所有页面中?

ruby-on-rails-3.1 asset-pipeline

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

Rails:在数据库中强制将空字符串设置为NULL

是否有一种简单的方法(即配置)强制ActiveRecord在DB中将空字符串保存为NULL(如果列允许)?

这样做的原因是,如果DB中的NULLable字符串列没有默认值,则不设置此值的新记录将包含NULL,而将此值设置为空字符串的新记录将不为NULL,我希望避免的数据库中的不一致.

现在我在我的模型中做这样的事情:

before_save :set_nil

def set_nil
  [:foo, :bar].each do |att|
    self[att] = nil if self[att].blank?
  end
end
Run Code Online (Sandbox Code Playgroud)

哪个有效,但效率不高或干燥.我可以将其分解为一个方法并将其混合到ActiveRecord中,但在我走这条路之前,我想知道是否有办法做到这一点.

mysql activerecord ruby-on-rails ruby-on-rails-3.1

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

Rails 3/Git/Bundler致命无法解析对象

尝试捆绑安装时,我收到以下错误

Fatal could not parse object '8c11dd........
Git error: command git reset --hard '8c11dd

If this error persists you can try removing the cache directory.
Run Code Online (Sandbox Code Playgroud)

删除缓存目录没有成功,有没有人见过这个错误?

Windows 7 64位

ruby ruby-on-rails bundler ruby-on-rails-3

24
推荐指数
4
解决办法
8407
查看次数

如何在更改Gemfile时重新同步Gemfile.lock

如何在更改Gemfile时重新同步Gemfile.lock.

假设我在Gemfile中有3个宝石(gem1,gem2,gem3).

bundle install 创建一个Gemfile.lock文件.

如果我删除gem3并运行bundle install,我希望重新生成Gemfile.lock并从rvm gemset中删除gem3.但事实并非如此,如何在不丢弃gemset的情况下重新同步.

ruby-on-rails bundler rvm

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

Can multiple sidekiq instances process the same queue

我不熟悉Sidekiq的内部,我想知道是否可以启动具有相同配置的几个Sidekiq实例(处理相同的队列).

是否有可能2个或更多Sidekiq实例将从队列中处理相同的消息?

更新:
在多台机器上运行Sidekiq时,我需要知道是否存在可能的冲突

ruby sidekiq

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

PostGIS - 将多面转换为单个多边形

是否可以在PostGIS中将包含多边形的形状文件导入单个多边形?每当我尝试导入多边形的形状文件时,它都会在geom列中存储为多面(而不是单个多边形).因此,我无法将其从多面体中提取为单个多边形值.

所有有用的建议非常感谢

postgresql postgis geoserver

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

Rails 3限制包含的对象

例如,我有一个博客对象,该博客有很多帖子.我想做第一个博客对象的热切加载,并包括说出它的前10个帖子.目前我会做@blogs = Blog.limit(4),然后在视图中使用@blogs.posts.limit(10).我很确定有一种更好的方法可以通过包括诸如此类的包含来实现Blog.include(:posts).limit(:posts=>10).是不是可以限制包含的对象的数量,还是我错过了一些基本的东西?

activerecord ruby-on-rails eager-loading ruby-on-rails-3

16
推荐指数
2
解决办法
4246
查看次数

禁用设计确认邮件

最近我将confirmable模块添加到了我的User类.我的应用程序中已经有一个非常好的邮件系统(Sidekiq,Sendgrid ......),因此我创建了自己的"确认帐户"邮件.现在的问题是禁用Devise发送其默认电子邮件.有没有办法完全禁用Devise邮件系统?

添加:

  • 我想维护confirmable模块,因为我正在使用它的属性和路由.
  • 我无法使用,skip_confirmation!因为我希望用户确认他们的帐户.
  • 我只是想禁用Devise邮件.

ruby-on-rails devise ruby-on-rails-3 devise-confirmable

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