草庐IT

key_value_map

全部标签

ruby - RSpec 2.7 和散列应该有_key

我试图弄清楚为什么我写的一个非常简单的“这个散列有这个key”规范失败了。进入我的RubyREPL我正在尝试以下...[3]pry(main)>a_hash={:a=>"A"}=>{:a=>"A"}[4]pry(main)>a_hash.shouldhave_key:aNoMethodError:undefinedmethod`have_key'formain:Objectfrom(pry):4:in`'[5]pry(main)>a_hash.keys.length.should==1=>true[8]pry(main)>a_hash.has_key?:a=>true第一个测试显然是我

ruby-on-rails - Ruby on Rails map.root 似乎无法正常工作

我正在尝试让我的应用程序的根路由到默认Controller。根据我的阅读,这应该可以通过我的routes.rb文件底部的类似内容实现:map.root:controller=>'albums'或者甚至:map.home'',:controller=>'albums'但是,当我尝试导航到http://myhost:8000/时,我只看到Rails欢迎页面。在对routes.rb进行更改之后和测试之前,我使用以下命令重新启动应用程序:sudomongrel_cluster_ctlrestart这里有一些更可能相关的环境信息:%rails-vRails2.3.3%ruby-vruby1.8.

ruby-on-rails - rails 4 : Forcing specific values with "strong parameters"

我正在努力使用用于创建“项目”的表单。最后,我只想允许当前的user_id,但我还没有构建用户模型或身份验证,因此作为占位符,我只是硬编码1。app/views/projects/new.html.erb:{:action=>'create'})do|f|%>1})%>app/controllers/projects_controller.rbdefcreate#saveobjectifProject.create(project_params)redirect_to(:action=>'show')elserender('new')endendprivatedefproject_pa

ruby-on-rails - rails/ ruby : TimeWithZone comparison inexplicably failing for equivalent values

我在当前项目中比较DateTime时遇到了一段糟糕的时光(没有双关语意),特别是比较ActiveSupport::TimeWithZone的两个实例。问题是我的两个TimeWithZone实例具有相同的值,但所有比较都表明它们不同。执行调试时暂停(使用RubyMine),可以看到如下信息:timestamp={ActiveSupport::TimeWithZone}2014-08-0110:33:36UTCstarted_at={ActiveSupport::TimeWithZone}2014-08-0110:33:36UTCtimestamp.inspect="Fri,01Aug20

ruby - Hash#keys 方法的错误输出

在某些情况下Hash#keys在2.4之前的Ruby中不能正常工作演示代码:h={a:1,b:2,c:3}h.eachdo|k,v|h.delete(:a)phph.keysbreakendRuby2.3.8输出:{:b=>2,:c=>3}[:b]Ruby2.5.1输出:{:b=>2,:c=>3}[:b,:c]我同意在迭代时修改散列是不好的。但是我没有看到修改hash和workkeys方法之间的关系。为什么会这样? 最佳答案 有趣的问题。这还不是答案,但对于评论来说太长了,它可以帮助其他人回答问题。哪些ruby受到影响?我创建了一个

ruby-on-rails - 尝试将本地数据库推送到 Heroku 后出现 "ActionView::Template::Error (Unknown primary key for table"

对于我通过Heroku托管的Ruby-on-Rails应用程序,我最近下载了一个备份,在本地恢复它,然后从外部来源将数据添加到数据库中。一切正常。在使用herokupg:pushHEROKU_DATABASE_URL--app将更新后的数据库推送到Heroku之后该应用程序运行良好,我可以看到新添加的数据。但是今天当我尝试在Heroku上登录该应用程序时,我收到了错误消息。在我的日志文件中,我看到了这个错误:ActionView::Template::Error(Unknownprimarykeyfortable...根据这篇SO帖子:Getting"Unknownprimarykey

ruby - 如何在不使用 block 的情况下在 Ruby 中计算 'map'?

我知道我可以用Ruby做到这一点:['a','b'].mapdo|s|s.to_symend得到这个:[:a,:b]我正在寻找一种不使用block的更简洁的方法。不幸的是,这不起作用:['a','b'].map#to_sym我可以比使用初始代码做得更好吗? 最佳答案 阅读一些关于Symbol#to_proc的内容:['a','b'].map(&:to_sym)#or['a','b'].map&:to_sym#Eitherwillresultin[:a,:b]如果您使用的是Ruby1.8.7或更高版本,或者如果您使用的是Rails,则

ruby-on-rails - map(& :name) do in this Ruby code? 是什么意思

为了更好地理解Ruby,我在网上冲浪时遇到了这段代码:require'rubygems'require'activeresource'ActiveResource::Base.logger=Logger.new("#{File.dirname(__FILE__)}/events.log")classEvent"Shortesteventevar!",:starts_at=>1.second.ago,:capacity=>25,:price=>10.00)e.destroy我特别感兴趣的是events.map(&:name)是如何工作的?我看到events是一个数组,因此它调用了它的ma

ruby-on-rails - 出现错误 "exceeded available parameter key space"?

在我的Rails应用程序中,在表单发布后,出现错误exceededavailableparameterkeyspace。表单中的表单字段太多。这是错误的原因吗?有意见吗? 最佳答案 如果您真的非常需要它,请尝试增加key_space_limitRack::Utils.key_space_limit=262144但根据this这可能很危险“更容易受到POST解析DOS攻击。”检查这个https://github.com/rack/rack/issues/318Rails/javascript:"toomanyparameterkeys

ruby-on-rails - 为什么 PG::UniqueViolation: ERROR: duplicate key value violates unique constraint?

我有一个模型Post,每次创建帖子时,我都希望同时创建一个新的Moderation实例。所以在post.rb中我使用回调after_save:create_moderation然后写一个私有(private)方法:...includeReportableafter_save:create_moderationprivatedefcreate_moderationself.create_moderation!(blog:Blog.first)end但是在创建提案时出现此错误:PG::UniqueViolation:ERROR:duplicatekeyvalueviolatesunique