我正在尝试在小牛上安装以下的gem版本 libv8(3.16.14.3) therubyracer(0.12.1) 显然therubyracergem取决于libv8。 1)安装libv8 什么是libv8? 我的一点研究似乎暗示它是Google Chrome使用的某种JavaScript库? 我在安装时遇到了麻烦,但是这个好post既有我的错误,也有关于如何绕过它的一个很好解释的答案。 所以我安装了libv8 gem install libv8 — –with-system-v8 这是我的理解,这安装的gem,但使用我的本地系统安装的V8库,而不是…与版本的gem? 无论哪种方式,它都是成功的。 2)安装therubyracer 在下一步,我遇到了安装therubyracergem的麻烦。 我不太清楚这个gem是干什么的,只是这是一个我试图bundle install的rails项目的依赖项。 它给了我以下错误: 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 […]
据我所知,有三种方法可以在Ruby中dynamic调用方法: 方法1: s = SomeObject.new method = s.method(:dynamic_method) method.call 方法2: s = SomeObject.new s.send(:dynamic_method) 方法3: s = SomeObject.new eval "s.dynamic_method" 通过对它们进行基准testing,我确定方法1是最快的,方法2更慢,方法3是最慢的。 我也发现.send和.send都允许调用私有方法,而eval不。 所以我的问题是:是否有任何理由使用.send或eval ? 为什么你不总是只使用最快的方法? 这些调用dynamic方法的方法还有其他什么区别?
我曾经使用mysqlgem,但现在我经常听到关于mysql2gem。 另外,它在Rails 3.0.x默认包含在Gemfile中。 使用mysql2 gem有什么区别和优点?
Ruby的三种方法在以下两种实现之间的行为差异是什么? module WithYield def self.thrice 3.times { yield } # yield to the implicit block argument end end module WithProcCall def self.thrice(&block) # & converts implicit block to an explicit, named Proc 3.times { block.call } # invoke Proc#call end end WithYield::thrice { puts "Hello world" } WithProcCall::thrice { puts "Hello world" } “行为差异”包括error handling,性能,工具支持等。
我有一个使用Devise进行authentication的Rails 3应用程序。 现在我需要允许某人使用他们的Facebook帐户login。 我认为这被称为Facebook的连接,但我也听说过Facebook Graph API,所以我不知道我要求哪一个。 为了将Facebook Connect与Devise集成,我需要做些什么? 解: 这个问题现在很老了。 一年前,Devise v1.2引入了OmniAuth支持。 现在Devise在v2.1(截至撰写本文),使用OmniAuth更容易。 这是Devise wiki上的一个很棒的教程, 使用omniauth-facebook gem和Devise来允许使用Facebook进行login 。 另外看看这个关于注册你的应用程序和使用Facebook Graph API的优秀教程。
我已经被joda-time API糟糕了: DateTime now = new DateTime(); DateTime ninetyDaysAgo = now.minusDays(90); 我正在尝试在Ruby中做类似的事情,但我是 now = Time.now ninetyDaysAgo = now – (90*24) 然而,math在这里(我真的在午夜工作)。 date扣除有友好的API吗?
我正在开始为我正在开发的一个项目构build一个REST API,这让我做了一些关于使用RoR构buildAPI的最佳方法的研究。 我很快就发现,默认情况下,模型向全世界开放,只需在URL末尾添加一个“.xml”并传递适当的参数即可通过URL调用。 那么下一个问题就来了。 如何保护我的应用程序以防止未经授权的更改? 在做一些研究时,我发现了一些关于attr_accessible和attr_protected文章,以及如何使用它们。 我在07年5月份发现了这个网站的具体url( 这里 )。 就像所有的事情一样,我确信事情从那时起就发展了。 所以我的问题是,这仍然是在RoR中保护REST API的最好方法吗? 如果不是在“新项目”或“现有项目”scheme中build议什么?
如何可靠地确定一个文件的types? 文件扩展名分析是不可接受的。 必须有一个类似UNIX文件(1)命令的rubyesque工具? 这是关于MIME或内容types,而不是文件系统分类,如目录,文件或套接字。
我是Ruby的新手,并试图围绕以下概念:bundler vs RVM vs gem vs ruby gems vs gemsets vs system rub,我很困惑。 有人可以描述一下我应该如何pipe理所有这些最新版本的Ubuntu的“最佳做法”吗? 我应该安装什么,我应该如何使用它? 我猜测,做一个sudo apt-get install ruby不build议,但我不知道。 除了“所有其他Ruby的东西”之外,我在我的系统上尝试了它。 这只是增加了我的困惑。 我不是在谈论Rails,而只是定期的Rubygem(例如Vagrant,Chef,脚本)。
我不能在窗口上安装薄gem。 在构build本机扩展期间会发生某些事情。 有人遇到同样的问题吗? 这是堆栈跟踪: >gem install thin –no-ri –no-rdoc Temporarily enhancing PATH to include DevKit… Building native extensions. This could take a while… ERROR: Error installing thin: ERROR: Failed to build gem native extension. C:/Ruby/bin/ruby.exe extconf.rb checking for rb_trap_immediate in ruby.h,rubysig.h… no checking for rb_thread_blocking_region()… yes checking for inotify_init() in sys/inotify.h… no checking for __NR_inotify_init […]