草庐IT

find_stuff

全部标签

Python 相当于 Ruby 的 #find_index 和 lambda?

在ruby中:[[1,2],[2,3],[9,3]].find_index{|i|i.include?(3)}返回1,这是包含3的数组中第一个元素的索引。Python中是否有与此等效的内容?我查看了List的index方法,但它似乎没有将lambda作为参数。 最佳答案 我通常写类似的东西>>>a=[[1,2],[2,3],[9,3]]>>>next(ifori,xinenumerate(a)if3inx)1如果没有找到,你会得到一个StopIteration异常,或者你可以传递一个默认值作为第二个参数返回:>>>next(ifor

ruby-on-rails - find_or_create_by - 不更新

我想向我的Controller提交一个产品ID和一个零售商ID,如果数据库中存在该组合,我想用提交的参数更新该记录,如果不存在,则创建一个新记录。我的Controller在下面,目前我可以看到,如果组合不存在,则会创建记录,但是当找到组合时,它会执行选择查询并且不会更新记录。我怎样才能让它更新而不只是选择?谢谢Controller:defAddNewPrice@newPrice=ProductPrice.find_or_create_by(product_id:params[:product_id],retailer_id:params[:retailer_id])end更新抱歉..刚

ruby - 你如何过滤 Ruby Find.find() 结果?

Find.find("d"){|path|putspath}我想排除某些类型的文件,比如*.gif和directories。PS:我总是可以在block中添加代码来检查文件名和目录类型,但我希望find本身能够为我过滤文件。 最佳答案 我不认为你可以告诉find这样做。你可以尝试使用Dir#[],它接受文件glob。如果您正在寻找特定类型的文件,或者可以使用文件glob模式语言过滤的文件,它可能更合适。例如Dir["dir/**/*.{xml,png,css,html}"]会找到目录d下的所有xml、png、css和html文件。查

ruby-on-rails - 事件记录。模型.Find.last

我在Trade和Execution之间有一个ActiveRecord关系。我可以得到Trade.executions#returnsallexeuctionsrealatedtotheTrade如果我这样做Trade.executions.last好像是根据ID返回上次的执行记录根据ID获取Trade相关最后执行记录的正确方式是这样吗? 最佳答案 不,这不能保证为您提供具有最高id的执行。如果您没有指定明确的顺序,那么记录可以以任何顺序从数据库中出来。它们看起来像是按id排序的事实只是一个方便的意外。您应该执行以下操作之一:high

ruby-on-rails - find_or_create ActiveRecord::RecordNotUnique 救援重试不起作用

使用ruby​​2.1.2和rails4.1.4。我对数据库中的电子邮件列有唯一约束。如果存在一个线程正在创建用户而另一个线程试图同时创建的竞争条件,则会引发记录不唯一的异常。我正在尝试通过重试来处理此异常,以便在重试时它将在find_or_create的SELECT期间找到客户。然而,它似乎并没有起作用。它用尽重试次数,然后重新引发异常。这是我最初做的:retries=10beginuser=User.find_or_create_by(:email=>email)rescueActiveRecord::RecordNotUniqueretryunless(retries-=1).z

ruby-on-rails - 如何将 joins 方法与 first_or_initialize 一起使用而不是 find_or_initialize_by (Rails)?

有没有办法重写下面的流程,目前使用find_or_initialize_by,使用joins方法?对于上下文-我有users(员工)在系统中记录他们的attendances(user有很多attendances,考勤记录属于用户)。Attendance.find_or_initialize_by(user:User.find_by(name:'Bob'),date:Time.zone.today).update(...)#Updatesomecolumnsafterthis我正在尝试使用.joins重写它,如下所示:Attendance.joins(:user).where(users

ruby-on-rails - '.find' 和 '.where' 方法之间的性能差异

我正在使用RubyonRails3.0.7,我想知道,关于性能问题,User.find()之间有什么区别?方法和User.where(:id=>)方法。 最佳答案 在幕后,find用你的where做或多或少你描述的事情.您可以在thispost中找到详细信息.话虽这么说,如果你想通过id获取单个记录,那么你可能想要使用find_one.这就是find当您使用一个id参数调用它时,最终会执行此操作,但您将跳过它需要运行的所有其他代码,以确定这就是您想要的。 关于ruby-on-rails-

ruby-on-rails - Rails 3 find_or_create_by

我正在关注http://railscasts.com/episodes/102-auto-complete-association一切似乎都很好。我正在尝试即时创建发票和客户。它确实有效。一切都很酷。客户所属帐户发票所属帐户发票属于_toclient但是,两个模型(客户和发票)都有一个强制属性:account_id。当我尝试动态创建新客户端时出现错误:client_id:-can'tbeblank我收到此错误的原因是无法创建客户,因为它需要客户模型中的account_id。如果我在客户模型中删除此行validates:account_id,:presence=>true,则会添加发票,

ruby-on-rails - 对于计算量大的查询,find_by_sql 的替代方法是什么?

我们公司喜欢计算晦涩指标的报告——无法使用ActiveRecord的查找器(find_by_sql除外)计算的指标,而ruport基于ruby​​的功能太慢了。是否有插件或gem或db适配器可以在数据库层进行大量计算?您创建复杂报告的解决方案是什么? 最佳答案 虽然不是数据库不可知论者,但我们的解决方案是plpgsql函数,使用Ruby和ActiveRecord会变得非常慢。 关于ruby-on-rails-对于计算量大的查询,find_by_sql的替代方法是什么?,我们在StackO

ruby - 检查警告 : Cannot find declaration for field

菜鸟问题。我对包含此类的文件运行了RubyMine的代码检查。classSquareattr_accessor:widthdefarea@width*@widthendend我很惊讶地在@width*@width行收到两个警告:找不到字段“@width”的声明attrsectionoftheStyleGuide对我没有帮助。为什么这是一个警告?----编辑----Ruby-Doc说到attr-accessorDefinesanamedattributeforthismodule,wherethenameissymbol.id2name,creatinganinstancevariabl