我正在运行Mac OSX 10.6.4并安装了RVM。 到目前为止,它是非常棒的,我真的很喜欢它让我pipe理多个版本的rails和ruby在同一台机器上,而不会头疼! 但是,我不想为每个设置安装某些gem(例如乘客)。 有没有办法在gemsets之间分享gem? 我有一个1.8.7@rails2.3.8和1.9.2@rails3,我可以安装gem,如乘客,mysql和capistrano一次,并使用所有版本?
我在尝试在centos上安装“rmagick”gem时遇到了问题。 以下是我的输出。 任何人都可以请帮助我确定我失踪的包 ? 我已经安装了所有提到的另一个堆栈溢出线程: RMagick安装错误 Building native extensions. This could take a while… ERROR: Error installing rmagick: ERROR: Failed to build gem native extension. /usr/local/bin/ruby extconf.rb checking for Ruby version >= 1.8.5… yes checking for gcc… yes checking for Magick-config… yes checking for ImageMagick version >= 6.4.9… yes checking for HDRI disabled version of […]
我创build一个由Formtastic使用的帮手,但我得到undefined local variable or method错误。 我不知道把它放在哪里,所以它可以工作。 我已经尝试在application_helper.rb和app / helpers / active_admin / view_helpers.rb
我在安装jekyll时遇到了一些麻烦。 不能完全弄清楚如何修补缺失的链接。 我认为这是对Ruby的更新,但是RVM在安装ruby的替代版本时也遇到了麻烦。 inheritance人全文: $ sudo gem install jekyll ERROR: Error installing jekyll: 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/fast-stemmer-1.0.1 for inspection. Results logged to /Library/Ruby/Gems/1.8/gems/fast-stemmer-1.0.1/ext/gem_make.out 这是否意味着我需要通过rvm更新我使用的ruby版本?
我在运行Mac OS X 10.6的计算机上部署了一个Ruby on Rails应用程序。 出现问题的代码由delayed_job运行。 只有通过delayed_job运行时才会出现问题。 如果我在控制台( rails console production )中运行它,或者通过cURL直接调用API,它没有任何问题。 而且,整个过程在我的开发环境中没有问题。 基本上,代码在一个地方工作,但由于某种原因,失败的地方工作。 我已经search并find了一些资源,但没有任何build议适用或有任何区别。 当我login到服务器并运行命令时,一切正常。 但由于某种原因,当它们由Capistrano运行/启动时,它不起作用。 任何帮助是极大的赞赏。 重要笔记: Ruby版本:1.9.2-p0 Rails版本:3.0.1 delayed_job版本:最新(来自collectiveidea / delayed_job ) rest-client版本:1.6.1 码: class CallApi < Struct.new(:num) def perform log "Entering perform" apinum = num || 5 log "ApiNum = #{apinum}" results = attempt(2,10) do ActiveSupport::JSON.decode(RestClient.get(API_URL, {:params => {:apinum => […]
我有一个非常标准的用例。 我有一个父对象和一个子对象的列表。 我想要一个表格forms,可以一次编辑所有的孩子,就像表格中的行一样。 我也希望能够插入一个或多个新的行,并提交它们被创build为新的logging。 当我使用fields_for为has-many相关的嵌套logging呈现一系列子表单时,rails会生成字段名,例如parent[children_attributes][0][fieldname] , parent[children_attributes][1][fieldname]等上。 这会导致Rackparsing一个参数哈希,如下所示: { "parent" => { "children" => { "0" => { … }, "1" => { … } } } 当传递一个新的 (未fields_for )对象时,相同的fields_for将生成一个字段名称,如下所示: parent[children_attributes][][fieldname] 注意其中没有索引的[] 。 这不能与包含[0] , [1]等的字段以相同的forms发布,因为Rack变得困惑并引发 TypeError: expected Array (got Rack::Utils::KeySpaceConstrainedParams) “OK”,认为我“我会确保所有的字段使用[]forms,而不是[index]forms。但我不知道如何说服fields_for做到这一贯。即使我给它是一个明确的字段名称前缀和对象: fields_for 'parent[children_attributes][]', child do |f| … 只要child持久,它会自动修改字段名,使他们成为例如parent[children_attributes][0][fieldname] ,同时留下新logging的字段名为parent[children_attributes][][fieldname] 。 再一次,Rack barfs。 我不知所措 我怎么使用像fields_for这样的标准Rails助手来提交多个新logging,以及现有的logging,让它们在params中被parsing为一个数组,并且把缺lessID的所有logging都创build为数据库中的新logging? […]
我知道我可以写一个Ruby case语句来检查正则expression式的匹配。 但是,我想在我的return语句中使用匹配数据。 像这样的半伪代码: foo = "10/10/2011" case foo when /^([0-9][0-9])/ print "the month is #{match[1]}" else print "something else" end 我怎样才能做到这一点? 谢谢! 只是一个说明:我明白,我不会像以上那样使用switch语句来处理一个简单的情况,但这只是一个例子。 实际上,我想要实现的是为许多潜在的正则expression式匹配一个可以用各种方式编写的date,然后相应地用Ruby的Date类进行parsing。
我试图testing下面的方法: def unprocess_move(board, move) if move[0].instance_of?(Array) multi_move = @multi_move.pop(2).reverse multi_move.each do |single_move| unapply_move(board, single_move) end else board = unapply_move(board, move) end board end 我想为@multi_move设置状态,但是我不想添加一个访问器来进行testing。 没有访问器有没有办法做到这一点? 谢谢。
我一直在使用回形针上传和自动resize的照片在我的Rails应用程序,我喜欢它。 唯一的问题是每隔一个月我疯狂的经理决定他想要一个新的尺寸来显示照片。所以我添加一个新的风格在我的照片模型,所有的新照片很好,但现有的照片现在是一个问题。 现在我已经开始处理更多的照片了,我需要一个程序化的方式来调整现有照片的大小。 也许有这样的事情一些回形针伎俩? 如果我不需要的话,我真的不需要弄清楚RMagick并写一个脚本。
原谅初学者的问题,但说我有一个数组: a = [1,2,3] 还有一个地方的function; 假设这是一个实例函数: class Ilike def turtles(*args) puts args.inspect end end 我如何用a调用Ilike.turtles ,就好像我正在调用(Ilike.new).turtles(1,2,3) 。 我熟悉send ,但这似乎并没有将数组转换为参数列表。 我正在寻找的并行Javascript apply ,这相当于call但将数组转换为参数列表。