我将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) 是否有一个很好的(一行)方式在ruby中编写一个哈希值,只有条件满足时才有一些条目?我想到了
{:a => 'a', :b => ('b' if condition)}
Run Code Online (Sandbox Code Playgroud)
但是,:b == nil如果条件没有得到满足,那就离开了.我意识到这可以在两行左右轻松完成,但在一行中会更好(例如将哈希传递给函数时).
我错过了(还)另一个红宝石的惊人功能吗?;)
我希望Rails 3.1能够获取更多我的资产以进行预编译.特别是,用于编译文件的默认匹配器不会添加.js文件vendor/assets/javascripts.我可以将资源添加到config.assets.precompile列表中,但这看起来很烦人.我不想在application.js清单中引用它们,因为我不希望它们包含在所有页面中.
总之,任何方式请求获取所有.js文件vendor/assets/javascripts得到预编译rake assets:precompile,但没有将它们包含在所有页面中?
是否有一种简单的方法(即配置)强制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中,但在我走这条路之前,我想知道是否有办法做到这一点.
尝试捆绑安装时,我收到以下错误
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位
如何在更改Gemfile时重新同步Gemfile.lock.
假设我在Gemfile中有3个宝石(gem1,gem2,gem3).
bundle install 创建一个Gemfile.lock文件.
如果我删除gem3并运行bundle install,我希望重新生成Gemfile.lock并从rvm gemset中删除gem3.但事实并非如此,如何在不丢弃gemset的情况下重新同步.
我不熟悉Sidekiq的内部,我想知道是否可以启动具有相同配置的几个Sidekiq实例(处理相同的队列).
是否有可能2个或更多Sidekiq实例将从队列中处理相同的消息?
更新:
在多台机器上运行Sidekiq时,我需要知道是否存在可能的冲突
是否可以在PostGIS中将包含多边形的形状文件导入单个多边形?每当我尝试导入多边形的形状文件时,它都会在geom列中存储为多面(而不是单个多边形).因此,我无法将其从多面体中提取为单个多边形值.
所有有用的建议非常感谢
例如,我有一个博客对象,该博客有很多帖子.我想做第一个博客对象的热切加载,并包括说出它的前10个帖子.目前我会做@blogs = Blog.limit(4),然后在视图中使用@blogs.posts.limit(10).我很确定有一种更好的方法可以通过包括诸如此类的包含来实现Blog.include(:posts).limit(:posts=>10).是不是可以限制包含的对象的数量,还是我错过了一些基本的东西?
最近我将confirmable模块添加到了我的User类.我的应用程序中已经有一个非常好的邮件系统(Sidekiq,Sendgrid ......),因此我创建了自己的"确认帐户"邮件.现在的问题是禁用Devise发送其默认电子邮件.有没有办法完全禁用Devise邮件系统?
添加:
confirmable模块,因为我正在使用它的属性和路由.skip_confirmation!因为我希望用户确认他们的帐户.Devise邮件.