草庐IT

do_calculation

全部标签

Ruby 类关系 : How do I use methods and objects from another class?

感谢您查看我的问题!:)我是Ruby编程的新手,我很难理解如何在我的代码中实现类,以及如何让它们相互继承方法和变量。我有一个LightBulb类,它看起来像这样:classLightBulbdefinitialize(watts,on)@watts=watts@on=onend#accessormethodsdefwatts@wattsenddefon@onend#othermethodsdefturnon@on=trueenddefturnoff@on=falseenddefto_s"#{@watts}-#{@on}"endend和类一起工作的驱动程序:#alit,30-wattbu

javascript - "respond_to do |format|"抛出 UnknownFormat 错误

我正在尝试使用ajax从Controller呈现js文件。这个确切的代码以前总是有效,甚至在其他方法中也有效,但我突然开始收到这个错误:ActionController::UnknownFormatinMoviesController#voteActionController::UnknownFormat电影Controller:defvote...respond_todo|format|#Theerrorpointstothisline.format.jsendend投票.js.erb:$('#votes').html("");链接:电影.html.erb:_votes.html.e

ruby-on-rails - ruby rails : What to do when two models share a lot of similar validations/validation_methods

我有几个模型都是以“密码”为中心的模型。它们不属于单个继承表,需要在单独的表中进行跟踪。从逻辑上讲,它们是完全不同类型的模型,但都具有密码和密码确认跟踪功能。他们还对密码规则使用相同的业务逻辑,例如密码中的字符数等。在Rails中确保代码是DRY且不会在Rails中重复的最佳方法是什么?我应该考虑做什么? 最佳答案 将通用代码分解成一个模块,然后将模块包含在每个模型类中。 关于ruby-on-rails-rubyrails:Whattodowhentwomodelssharealotof

ruby-on-rails - rails : How do I cancel a save if before_update callback returns false?

我有一个模型,它有一个before_update回调。根据我的理解,当在模型实例上调用update_attributes时,将调用before_update。我的假设是,如果before_update回调返回false,则不会更新记录。然而,这似乎并没有像假设的那样工作。每次我调用update_attributes时,即使before_update返回false,记录也会被保存。如果before_update返回false,您知道如何防止更新记录吗?这是我在user.rb文件中尝试过的内容:classUsertruebefore_updatedofalseendend这是我在Rails

ruby - 使用 do...end block 时 map、select 等的不同行为

这个问题在这里已经有了答案:Rubyblockandunparenthesizedarguments(1个回答)关闭7年前。当我使用map、select和其他Enumerable时,我注意到以下行为差异方法。假设我们有如下哈希:h={a:1}下面的代码按预期打印select的输出。ph.select{|k,v|true}#=>{:a=>1}但是,下面的代码显示输出是一个Enumerator,即使已经提供了一个block。ph.selectdo|k,v|trueend#=>#1}:select>知道为什么会出现这种行为差异吗?我经常遇到这个问题,因为我在工作时一直使用inspectp,这

ruby - "n.times do" block 只返回 n 的值

根据thisquestion的答案判断,我预计@n.timesdo"hello"end返回与@n值相等的“hello”数量。但是,无论我如何修改代码,我的Rails控制台都只返回@n的值,仅此而已。我做错了什么?例如,如果我先设置@n=10,那么代码的结果就是10。 最佳答案 不,我看不出您是如何从这些答案中推断出.timesblock应该返回任何内容的。它所做的就是运行指定block指定次数,仅此而已。block的返回值被丢弃。如果您想将“hello”打印到标准输出N次或做一些其他工作,就可以。n.timesdoputs'hell

ruby-on-rails - Ruby 中的 Proc.new : when do I need to use it?

date_validator在其示例中有评论:UsingProc.newpreventsproductioncacheissues这是否意味着,在我的代码中的任何地方,我都使用与当前时间相关的方法(Time.now、1.day.since(Time.zone.now)等),我应该用Proc.new{}?我不完全理解这一点,因为更换了time_now=Time.now.utc与time_now=Proc.new{Time.now.utc}对我来说没有意义(返回了新类型的对象)。那么,问题是,我应该何时以及如何将Proc.new与时间相关的方法一起使用?这是否仍然适用于最新版本的Ruby(

ruby-on-rails - 正则表达式 : How do I grab a block of text using regex?(在 ruby​​ 中)

我正在使用ruby​​,我正试图找到一种在{start_grab_entries}和{end_grab_entries}之间抓取文本的方法,如下所示:{start_grab_entries}iwanttograbthetextthatyouseehereinthemiddle{end_grab_entries}像这样:$1=>"iwanttograbthetextthatyouseehereinthemiddle"到目前为止,我尝试将其作为正则表达式:\{start_grab_entries}(.|\n)*\{end_grab_entries}但是,使用$1,这给了我一个空白。您知道我

ruby - 为什么分配变量时 do/end block 的行为/返回不同?

puts[1,2,3].mapdo|x|x+1end.inspect对于ruby​​1.9.2这会返回ruby1.8.7:#1#2#3分配一个变量...x=[1,2,3].mapdo|x|x+1end.inspectputsx[2,3,4]mustacheblock按预期工作:puts[1,2,3].map{|x|x+1}.inspect[2,3,4] 最佳答案 puts[1,2,3].mapdo|x|x+1end.inspect解析为:puts([1,2,3].map)do|x|x+1end.inspect即map在没有block

Ruby 嵌套每个 do 循环

我试图通过让这个程序运行来理解嵌套循环。如果可能的话,我想使用“每次做”的循环方式。现在循环执行所有第一个循环,然后是第二个……等等……我想做的是,执行第一个循环1次,然后下降到第二个循环一次……等等。这是我的代码(粘贴在下面)期望的输出是这样的:index3.03.0+-------------------------------------------------------+0-23.4-23.41-2226.74-2226.742-1.93464e+07-1.93464e+07代码classLogisticsFunctionputs"Entertwonumbers,bothbe