使用rbenv install会引发错误

我正在使用Homebrew rbenv。 brew doctor出来很好。 rbenv install 2.0.0-p451给出以下错误消息: user$ rbenv install 2.0.0-p451 Downloading ruby-2.0.0-p451.tar.gz… -> http://dqw8nmjcqpjn7.cloudfront.net/9227787a9636551f1749ee8394b5ffe5 Installing ruby-2.0.0-p451… BUILD FAILED Inspect or clean up the working tree at /var/folders/4h/ty8nj6c144b5cmhcrt0hd3cw0000gn/T/ruby-build.20140501101240.6245 Results logged to /var/folders/4h/ty8nj6c144b5cmhcrt0hd3cw0000gn/T/ruby-build.20140501101240.6245.log Last 10 log lines: ld: warning: directory not found for option ‘-L/usr/local/var/rbenv/versions/2.0.0-p451/lib’ installing default openssl libraries 1 warning generated. linking shared-object date_core.bundle ld: […]

TypeError – 没有将nil隐式转换为String Sinatra

我的代码看起来像这样。它是在将字段提取到哈希后将json数据上传到数据库中。 但我在log_extractor.rb的JSON.parse(json_data)行中得到’TypeError – 没有将nil隐式转换为String’ upload_results.erb: $( “form” ).submit(function( event ){ var fileoutput = reader.result; //$(“#upload_button”).click(function(){ $.ajax({ url:’/file_upload’, type : “POST”, data: { fileoutputid: fileoutput }, dataType: ‘json’, success: function(response) { }, failure: function(response){ } }); }); server.rb post ‘/file_upload’ do file_data = params[:fileoutputid] @uploaderobj.fileUpload(file_data) end log_extractor.rb @data_hash = JSON.parse(json_data) @data_hash[‘test_results’].keys.length end

从类中调用属性访问器方法

我试图调用我的一个类属性编写器,但由于某种原因它永远不会被调用。 这里有一些代码可以让我更清楚: class Test attr_reader :test def test=(val) puts ‘Called’ @test = val end def set_it(val) test = val end end obj = Test.new obj.set_it 5 puts obj.test => nil 最后的puts语句输出’nil’。 向test =添加一个调试语句表明它永远不会被调用。 我究竟做错了什么? 更新 我部分地重写了这个问题,因为当我写这个问题时我并没有真正理解这个问题。 所以这个问题现在更加普遍。

最长的循环数字

我试图找到小于1000的数字,当它除以1时产生最长的重复数字串。我有一个十进制数列表,必须找到具有最长重复序列的数字。 这是我到目前为止所拥有的 numbers = [*2..999] decimal_representations = numbers.map { |number| 1.to_f/number } decimal_representations.map!(&:to_s) 我可以使用正则表达式生成三维数组。 Regex /(.+)\1+/产生一系列重复的子串。 我想找到最长的子字符串,所以我使用了enumerable的max_by函数。 decimal_representations.map! { |decimal| decimal.scan(/(.+)\1+/).max_by(&:length) }.flatten 我必须压缩我的数组以删除nil元素 decimal_representations.compact! 然后我可以找出哪个长度最长。 decimal_representations.max_by(&:length) 我得到0090009009 ,但我无法弄清楚哪个数字具有该十进制值,因为我从数组中删除了nil元素。 有任何想法吗?

正则表达式:匹配包含数字和字母的字符串,但不包含只是数字的字符串

题 我希望能够使用单个正则表达式(如果可能)要求字符串适合[A-Za-z0-9_]但不允许: 字符串只包含数字或/和符号。 以符号开头或结尾的字符串 彼此相邻的多个符号 有效 test_0123 t0e1s2t3 0123_test te0_s1t23 t_t 无效 t__t ____ 01230123 _0123 _test _test123 test_ test123_ 规则的原因 这样做的目的是过滤我正在处理的网站的用户名。 出于特定原因,我已达到规则。 仅包含数字和/或符号的用户名可能会导致路由和数据库查找出现问题。 /users/#{id}的路由允许id为用户的id或用户的名称。 所以名称和ID不应该碰撞。 _test看起来很奇怪,我不相信它是有效的子域名,即_test.example.com 我不喜欢t__t作为子域的外观。 即t__t.example.com

Rails:构建涉及多态关联和STI的查询

我正在尝试找到关于照片的10条最新评论,因此我可以将它们集成到我的Rails 3.0.3应用程序的活动源中。 我有一个Photo模型,它inheritance了使用单表inheritance的Upload模型: class Upload < ActiveRecord::Base … end class Photo :commentable … end 可评论的多态关联在Comment模型中描述: class Comment true end 到目前为止一切都那么好吧? 当我尝试构建查询时出现问题。 经过一些试验和错误,我想出了这个代码,它位于Photo模型中: def self.latest_comments(count = 10) Comment.where(:commentable_type => “Upload”)\ .joins(“INNER JOIN uploads ON comments.commentable_id = uploads.id”)\ .where(“uploads.type” => “Photo”).order(“comments.created_at DESC”).limit(count) end 这段代码适用于我的SQLite开发机器,但是我必须做一些修改才能让它在使用PostgreSQL的生产服务器上运行。 上面的查询化身尚未在生产服务器上进行过测试,但我一直在寻找一种更简洁的结构化查询方式,因为上面的内容并不十分健壮,也不像“Railsy”。 我想要的是能够说的是 Comment.joins(:commentable => :photo) …但是这引发了一个exception,大概是因为Rails不知道如何进行连接: ActiveRecord :: EagerLoadPolymorphicError:无法急切加载多态关联:commentable 我在StackOverflow上发表了一篇文章 ,描述了一种查询多态关联的不同方式。 我能够根据这篇文章提出以下代码: Comment.find_all_by_commentable_type(“Upload”, […]

更新记录栏4没有路由匹配“/ admin / usersupdate”

我有这个控制器 def usersedit @user = User.find_by id: params[:id] end def usersupdate @user = User.find_by id: params[:id] if @user.update(post_params) redirect_to action: :users else render ‘usersedit’ end end 这个表单在usersedit.html.erb的视图中 但是当我提交表单时,会出现此错误 No route matches [PATCH] “/admin/usersupdate” 我的路线代码是: Prefix Verb URI Pattern Controller#Action root GET / pages#home admin_index GET /admin/index(.:format) admin#index admin_grades GET /admin/grades(.:format) admin#grades pages_home GET /pages/home(.:format) pages#home […]

无法安装sqlite3 gem

我正在尝试运行bundle命令来安装todo应用程序的所有gem。 所有gem下载没有问题,但sqlite3gem没有。 我不知道以下哪些方法可以解释一下发生了什么以及如何解决? 使用本机扩展安装sqlite3 1.3.8 Gem :: Ext :: BuildError:错误:无法构建gem原生扩展。 /Users/tomfinet/.rbenv/versions/2.2.3/bin/ruby -r ./siteconf20151208- 2023-1esrcfp.rb extconf.rb checking for sqlite3.h… yes checking for sqlite3_libversion_number() in -lsqlite3… yes checking for rb_proc_arity()… yes checking for sqlite3_initialize()… yes checking for sqlite3_backup_init()… yes checking for sqlite3_column_database_name()… no checking for sqlite3_enable_load_extension()… no checking for sqlite3_load_extension()… no checking for sqlite3_open_v2()… yes checking for […]

直接和通过include定义嵌套类

假设我正在为我的家庭存储系统建模。 我有一堆不同类型的Container ,我发现它们中有很多都有装饰品,我已经为这种常见情况设置了一些辅助代码。 我的容器中有我的Mantlepiece和我的Bookcase 。 我只把饰品存放在前者上; 而后者有所有的装饰品,精装书和软书。 这是一个初步尝试: module Properties def has_ornament include OrnamentThings end module OrnamentThings module Things class Ornament end end end end class Container extend Properties end class Mantlepiece < Container has_ornament end class Bookcase < Container has_ornament module Things class Hardback end class Paperback end end end [Mantlepiece, Bookcase].each do |place| […]

如何使用Ruby on Rails从电子邮件中提取所有URls /链接?

我正在建立一个书签网站。 我想从电子邮件中提取所有URI /链接。 我的网站正在使用Ruby on Rails。 如何提取收到的电子邮件内容的所有url?