草庐IT

initial_condition

全部标签

ruby - 有什么方法可以用 "initialise"而不是 "initialize"来初始化对象?

所以,因为我是英国人,所以我总是使用名称initialise()初始化对象,并且经常收到错误Errorininitialize:(wrongnumberofarguments(givenn,expected0))。我可以做一些元编程来为所有尝试调用initialize()的对象制作initialize()吗? 最佳答案 这样的事情可能会奏效;但是任何阅读或使用您的代码的人都可能讨厌您。:PclassBasicObjectaliasamerican_initializeinitializeprivatedefinitialize(*a

sql - 如何在 :conditions argument to ActiveRecord. 查找中使用 %?

我正在尝试执行这样的查询:Widget.find(:all,:conditions=>["namelike%awesome%"])但是,我从sanitize_sql中收到“格式错误的字符串”异常,将“%”指定为问题。如何执行此查询? 最佳答案 试试这个语法:term="awesome"Widget.all(:conditions=>["nameLIKE?","%#{term}%"]) 关于sql-如何在:conditionsargumenttoActiveRecord.查找中使用%?,我

ruby - 是什么导致了 "already initialized constant"警告?

我的代码有什么问题?FileNameArray是否被重用?f.rb:17:警告:已初始化常量FileNameArraynumber=0whilenumber 最佳答案 你可能是ruby​​初学者,我尝试用ruby​​方式重写相同的代码......(1..99).eachdo|number|Dir.glob("/home/product/"+("%04d"%numbers)+"/*/*.txt").eachdo|file_name|File.open(file_name,"r:utf-8").eachdo|txt|nextunless

ruby-on-rails - 多个 model.save's in 1 if condition with an unless

我正在尝试保存一个response并保存一个issue如果它在一种情况下不是nil所以我没有多个if/else条件使此逻辑复杂化。对于@response存在且issue为nil的用例,这不会进入ifblock。是否有明显的东西我没有看到,或者我不能像这样在一行中写下我的逻辑?注意:我知道应该使用事务,但我现在只是想建立一个工作原型(prototype)。if@response.save&&(issue.saveunlessissue.nil?)#Doesnotgetintotheifblockwhen@responseexistsandissueisnilp'insave'format

ruby - 什么是 Replace Conditional with Polymorphism 重构?它是如何在 Ruby 中实现的?

我最近在要求消除ruby​​中的if..else条件时遇到了用多态性重构替换条件。thelink任何人都可以向我解释我如何在ruby​​中实现相同的功能吗?(一个简单的甜蜜代码就可以) 最佳答案 ReplaceConditionalwithPolymorphismRefactoring非常简单,而且几乎就是它听起来的样子。您有一个带有如下条件的方法:defspeedcase@typewhen:europeanthenbase_speedwhen:africanthenbase_speed-load_factor*@number_of

ruby-on-rails - 使用 Rails find_or_initialize_by_email,如何确定记录是否已找到或已初始化?

在我的一个Controller中,我正在做:user=User.find_or_initialize_by_email(@omniauth['info']['email'])然后我需要知道记录是否已找到或已初始化。我试过这个:ifuserelseend但这行不通,因为总会有用户。知道查找或初始化是否已找到或已初始化的正确方法是什么? 最佳答案 您应该能够使用persisted?:ifuser.persisted?edgeguides.rubyonrails.org以下是关于find_or_initialize_by的内容:Thefi

Ruby 三元 - 警告 : string literal in condition

此代码按预期工作:ifphrase.last.eql?"?"?true:falsetrueelsefalseend但是这段代码使用了Ruby三元运算符:phrase.last.eql?"?"?true:false出现以下错误:warning:stringliteralincondition我是否需要以某种方式转义"?"? 最佳答案 没有括号,ruby将其解释为phrase.last.eql?("?"?true:false)它解释了消息“警告:条件中的字符串文字”。要解决此问题,请在参数上使用括号:phrase.last.eql?("

ruby - 在 `initialize` 方法之外声明一个实例变量

我被教导用definitialize来声明我的实例变量。我的印象是我只能在我的initialize方法中声明实例变量。尽管如此,我在initialize方法之外声明了一个实例变量@foo,并使其按我的预期工作:classFooBardefinitialize(bar)@bar=barenddeffoo_as_instance_var@foo=@bar.split('')@fooendendx="somethingwickedthiswaycomes"y=FooBar.new(x)putsy.foo_as_instance_var为什么我可以在initialize方法之外声明一个实例变量

ruby - 是否可以结合 with_options 和 :if for conditional validations?

我正在尝试使用with_options为管理员用户将我的条件验证组合在一起。对用户名唯一性的第二次验证最终覆盖了with_options条件。有更好的方法吗?或者我应该忘记with_options并编写两个单独的语句?with_options:if=>Proc.new{|user|user.admin?}do|admin|admin.validates:email,:presence=>trueadmin.validates:username,:uniqueness=>true,:if=>Proc.new{|user|user.category=="customized_usernam

ruby-on-rails - Rails 2.3.5 - ".find"函数不适用于 ( :condition = >"date") option

我想做的是查找过去60天内使用过的特定记录。我正在使用Oracle(9i),railsv:2.3.5,rubyv:1.8.7我定义日期间隔的代码是:date=(((Time.now-60.days).strftime("%d-%b-%y"))...(Time.now.strftime("%d-%b-%y")))下面是我如何使用它:conditions={}conditions[:start_date]=dateconditions[:account_no]=account_numberresults=MyModel.find(:all,:conditions=>conditions)要