草庐IT

required_if

全部标签

ruby - 如何在不使用 'if' 或 'then' 的情况下在 Ruby 中写入 'end'

我发现了三种在Ruby中编写相同条件的方法:#1if1==1puts"true"end#2puts"true"if1==1#3if1==1thenputs"true"end为什么我不能这样做?#4if1==1puts"true"我不明白:为什么在#3中需要then和end,并且,为什么我需要更改顺序才能使#2正常工作。陈述#4似乎是最自然的写法。我不明白为什么这是不可能的。 最佳答案 “ifxthenyend”语法用于多行条件语句,而“yifx”语法用于简洁的单行条件语句。then在第一种情况下是必要的,它告诉Ruby条件已经结束(

ruby - 为什么 'undefined method ` assert_equal' ' is thrown even after requiring ' test/unit'

我打开irb并输入:require'test/unit'但是当我使用assert_equal方法时,出现以下错误:NoMethodError:undefinedmethod'assert_equal'formain:Object。为什么即使在需要“测试/单元”之后也会发生这种情况? 最佳答案 assert_equal是在Test::Unit::TestCase的子类上定义的,因此仅在该类中可用。您可能会成功地使用includeTest::Unit::TestCase将这些方法加载到当前范围。更有可能的是,您最好将测试写在一个短文件中

ruby - "if (a == b || c == b)"语句可以在 Ruby 中完成更短吗

我有一段Ruby代码如下:defcheckifa==b||c==b#executesomecode#b=thesamevariableendend可以这么写吗defcheckifa||c==b#thisdoesn'tdothetrickendif(a||c)==b#thisalsodoesn'tdothemagicasIthoughtitwouldendend或者以一种不需要输入两次b的方式。这是出于懒惰,我想知道。 最佳答案 if[a,c].include?b#codeend然而,这比您想避免的代码要慢得多——至少与a、b和c一样

ruby - require ruby​​gems 如何帮助查找 ruby​​gem 文件?

在尝试解决Gemfoundinirb,notinRuby时,我试着看看require'rubygems'对我自己的安装有什么影响:$irbirb(main):001:0>RUBY_VERSION=>"1.8.7"irb(main):002:0>$:["/usr/local/lib/site_ruby/1.8","/usr/local/lib/site_ruby/1.8/x86_64-linux","/usr/local/lib/site_ruby","/usr/lib/ruby/vendor_ruby/1.8","/usr/lib/ruby/vendor_ruby/1.8/x86_64

ruby - 时间 :Class after requiring active_support/time_with_zone 的未定义方法 `zone`

我在使用Ruby2.2.1并安装了active_support4.2,所以我想使用Time.zone.parse('2007-02-1015:30:45')如此处所述:http://api.rubyonrails.org/classes/ActiveSupport/TimeWithZone.html但即使在需要active_support和active_support/time_with_zone之后,我觉得Time.zone仍然不起作用。观察:2.2.1:002>require"active_support"=>true2.2.1:003>Time.zoneNoMethodError

ruby - 为什么是 "wrong to require rubygems"?

根据thispost,需要ruby​​gems是一种反模式。require'rubygems'争论似乎归结为:WhenIuseyourlibrary,deployyourapp,orrunyourtestsImaynotwanttouserubygems.Whenyourequire'rubygems'inyourcode,youremovemyabilitytomakethatdecision.Icannotunrequirerubygems,butyoucannotrequireitinthefirstplace.但是,当您创建代码库并与其他人共享代码库时,对于您“需要”的任何Ru

ruby-on-rails - 添加内联类 if ...(在 1 行中)

我想将一个类添加到一个link_to只有当一个陈述为真时。"last"ifproduct==@products.last%>IF语句影响整行而不仅仅是:class部分的问题。我知道我可以用IFELSE完成它,但是是否可以在一行中完成它? 最佳答案 (product==@products.last?"last":"")%> 关于ruby-on-rails-添加内联类if...(在1行中),我们在StackOverflow上找到一个类似的问题: https://s

ruby - $:<< "." do to Ruby's require path? 是什么意思

我不明白$:的意思在Ruby中。我将Ruby升级到1.9.1,但程序无法运行。我的同学告诉我,我应该添加$:什么是$:做? 最佳答案 $:是包含构成Ruby加载路径的路径数组的变量将一个项目追加到数组的末尾.引用当前目录123|||VVV$:所以你正在将当前目录添加到Ruby的加载路径引用资料:可以在ExecutionEnvironmentVariables中找到此页面的一部分来自ThePragmaticProgrammersGuideAnarrayofstrings,whereeachstringspecifiesadirecto

ruby-on-rails - Ruby:IF 语句中的 Nils

这个问题在这里已经有了答案:HowtoavoidNoMethodErrorformissingelementsinnestedhashes,withoutrepeatednilchecks?(16个答案)关闭7年前。我正在处理的Rails应用程序中有以下非常难看的ruby​​代码:ifparams.present?ifparams[:search].present?ifparams[:search][:tags_name_in].present?...endendend我想问的是params[:search][:tags_name_in]是否已经定义,但是因为params、params

ruby - kernel_require.rb :55:in `require' : cannot load such file error

我目前使用的是Ruby1.9.3版(尽管我在使用Ruby2.0.0时遇到了同样的问题)。在Windows764位上。我正在关注“TheCucumberBook”并卡在第7.2章-“使用转换删除重复项”。我的文件夹结构如下:\cash_withdrawal\cash_withdrawal\Gemfile\cash_withdrawal\Gemfile.lock\cash_withdrawal\features\cash_withdrawal\features\cash-withdrawal.feature\cash_withdrawal\features\step_definitions