草庐IT

ruby-on-rails - Ruby 中的哈希 "has_key"复杂性

我有一个散列vars={"a"=>"Name","b"=>"Address","c"=>"Phone"}。我想检查这条线的性能:vars.has_key(:b)?是O(1)还是O(散列大小)? 最佳答案 简单的基准测试:require'benchmark'iterations=10_000small=10big=1_000_000small_hash={}big_hash={}(1..small).eachdo|i|small_hash[i]=iend(1..big).eachdo|i|big_hash[i]=iendBenchma

ruby - 井字游戏 : checking to see if a player has won

我目前正在构建一款非常流行的Tic-Tac-Toe游戏的复制品,该游戏使用纯ruby构建并经过测试的TDD风格。我遇到的唯一问题是,在我的一生中,我无法弄清楚如何检查玩家何时获胜。我知道这是一个相对简单的问题,但我只是经历了其中的一天——我真的只是在万不得已的情况下才在这里发帖。非常感谢任何帮助-并随时批评我当前的代码!我能解决。:)我的代码:classTicTacToeWINNING_COMBINATIONS=[[0,1,2],[3,4,5],[6,7,8],#Horizontal[0,3,6],[1,4,7],[2,5,8],#Vertical[0,4,8],[2,4,6]]#Di

ruby-on-rails - 没有 has_many 关联元素的 Rails 作用域过滤元素

我有以下模型:classProperty{where('properties.idNOTIN(SELECTDISTINCT(property_id)FROMphotos)')}endclassPhoto我知道我的范围真的很低效。我需要另一种方法来获取没有任何照片关联的属性。有什么帮助吗? 最佳答案 您可以执行以下操作:classProperty类似问题:Howtoqueryamodelbasedonattributeofanothermodelwhichbelongstothefirstmodel?Railsactiverecord

sql - ActiveRecord 查询,按关联排序,has_many 的最后一个

我试图通过最近创建的相关记录(通信)的created_at列列出所有用户。到目前为止我所拥有的:User.includes(:communications).order('communications.created_atISNULL,communications.created_atasc')实际上,desc如我所料地工作。问题是顺序颠倒了,我尝试顺序asc。这似乎是因为用户可以有许多通信,查询返回用户的列表,顺序是第一个通信创建的顺序,而不是最近的。我如何修改查询以按asc和desc顺序定位最近创建的关联记录?谢谢你的时间。 最佳答案

ruby-on-rails - 从 ActiveRecord has_many 关联中提取唯一值

我有以下关联:Artisthas_manySongs。因此,我可以通过以下方式获取艺术家的歌曲:artist.songs但是,我只想获取歌曲的流派:artist.songs.pluck(:genre)但是,这种类型可能会在结果中出现多次;我只想获得独特的流派值(value)。不幸的是,pluck在这里没有任何帮助,因为它返回一个数组,并且在其上调用uniq不会调整ActiveRecord查询,但是普通的数组#uniq.我可以这样做:artist.songs.select(:genre).uniq.pluck(:genre)但我觉得一定有更好的办法。P.S.:然而,从一些最小的基准测试来

ruby-on-rails - has_many 与 select 关联

全部!我想创建额外的has_many关系来只选择需要的列例子classPrice:city_id,:foreign_key=>:city_idhas_many:orders,:through=>:order_itemsend所以它现在可以工作了。但我想创建像:orders一样工作的关联,但有:select选项例子has_many:orders,:through=>:order_items,:select=>"price"但我不想覆盖当前的:orders协调。如何做到这一点?更新Azoto显示带有源选项的示例!没关系,但是当我在includes中使用这个accotiation时,它不起作

sql - Rails 4 "where"-query with "has_many belongs_to"-relationship, search with specific count

这应该是一个简单的查询,但我在正确使用Rails语法时遇到了问题。我正在使用Rails4.1.1和Postgresql(9.3)。我有一个模型用户和模型公司。User有一个公司,Company有很多用户。我试图找到所有拥有5个以上用户的公司。classCompany问题类似于:Findallrecordswhichhaveacountofanassociationgreaterthanzero如果我尝试上述类似的解决方案:Company.joins(:users).group("company.id").having("count(users.id)>5")它给我一个错误:PG::Un

ruby-on-rails - Rails has_many :through Uninitialized constant

我正在寻找有关调试Railshas_many:through关联问题的帮助。我有3个模型,Package、Venue和我的连接表Packagevenuepackage.rbclassPackage地点.rbclassVenuepackagevenue.rbclassPackagevenuepackagevenues表的架构create_table"packagevenues",force::cascadedo|t|t.integer"package_id"t.integer"venue_id"t.datetime"created_at",null:falset.datetime"upd

ruby-on-rails - 使用 :confirm in my link_to helper method in ruby on rails 4 has no effect what so ever. 可能有什么问题?

这是我的link_to方法:'delete',:confirm=>'Areyousure?'%>我查看了我的旧ruby​​onrails3项目,这就是我在link_to助手中调用confirm的方式。好像没什么效果。rubyonrails4有什么变化会导致它停止工作吗?我的gemfile中有jquery-rails文件,我检查了我的application.js文件,一切看起来都很好。有什么问题吗? 最佳答案 你需要使用:--rails4changedthesyntax,因此confirm属性现在在data散列中处理。之前你可以使用c

javascript - 未定义方法 `has_content_type?' 为 nil :NilClass

我有一个Controller操作,它使用一些Javascript在我的页面上加载表单。当我提交我的表单时,它没有创建Rails请求对象,我在我的问题标题中收到错误。这是加载到DOM后的表单:这是我得到NoMethodError的地方:actionpack(5.0.0.1)lib/action_controller/metal/params_wrapper.rb(第2行)def_wrapper_enabled?returnfalseunlessrequest.has_content_type?ref=request.content_mime_type.ref_wrapper_format