草庐IT

VARIABLES

全部标签

ruby - 将呈现的部分分配给实例变量

在rails4中,我想在页面的任何地方呈现部分内容(比如页脚)。在home_controller.rb中,我在一个类中有这个:defspree_application@test=render:partial=>'spree/shared/footer'end当我转到索引页并添加时:没有任何反应。我知道我可以在索引页面内呈现,但我想问是否有办法将呈现的链接分配给变量。谢谢!编辑:我在这个问题上犯了一个错误。我定义了:spree_application 最佳答案 您正在寻找render_to_string

ruby-on-rails - 如何将 Ruby 变量放入正则表达式代码中

我正在运行grep方法以通过模式匹配进行过滤。这是示例代码。companies.grep/city/但是,ruby不允许我在railsView内的block中输入area_code。相反,我不得不像这样对其进行硬编码:companies.grep/miami/请记住,城市是一个变量。例如,city=miami但是,它会更新。你知道如何通过grep方法传递变量吗?此外,我尝试了companies.grep/#{city}/,但没有成功 最佳答案 companies.grep/#{city}/#orcompanies.grepRegex

ruby - 为什么只有有限数量的正则表达式捕获存储在 `global_variables` 中?

如果我用包含十个捕获的正则表达式进行匹配:/(o)(t)(th)(f)(fi)(s)(se)(e)(n)(t)/.match("otthffisseent")然后,对于$10,我得到:$10#=>"t"但global_variables中缺少它。我得到(在irbsession中):[:$;,:$-F,:$@,:$!,:$SAFE,:$~,:$&,:$`,:$',:$+,:$=,:$KCODE,:$-K,:$,,:$/,:$-0,:$\,:$_,:$stdin,:$stdout,:$stderr,:$>,:$这里只列出前九个:$1,:$2,:$3,:$4,:$5,:$6,:$7,:$8,

ruby - 有没有办法在 Ruby 中获取所有变量?

有没有一种方法可以在Ruby中找到以特定字符串开头的所有变量?例如,我的ruby​​程序中有以下变量:ret_d=1ret_d2=23是否有返回["ret_d","re​​t_d2"]的函数?问题是我没有所有变量的集合。 最佳答案 Kernel#local_variables应该可以解决问题。>>ret_d=1=>1>>ret_d2=23=>23>>local_variables=>["_","ret_d","ret_d2"]>>local_variables.select{|v|v=~/^ret_/}=>["ret_d","ret

ruby-on-rails - 如何在 Ruby on Rails 中执行期间确定 Controller 变量的值?

在执行期间确定Controller变量值的最佳方法是什么?例如,有没有办法在代码中插入一个中断,并使变量的值输出到屏幕(或日志)? 最佳答案 是的。最简单的方法是将值提升为字符串。像这样:raise@foo.to_s或者,您可以安装调试器(geminstallruby​​-debug),然后使用--debugger标志启动开发服务器。然后,在您的代码中,调用debugger指令。在调试器提示中,您有许多命令,包括打印变量值的p。更新:这里是abitmoreaboutruby-debug.

ruby - 模块的实例变量是否在类与 mixin 之间共享?

我想知道Ruby模块的实例变量在多个类中的行为如何“混合”它。我写了一个示例代码来测试它:#HereisamoduleIcreatedwithoneinstancevariableandtwoinstancemethods.moduleSharedVar@color='red'defchange_color(new_color)@color=new_colorenddefshow_colorputs@colorendendclassExample1includeSharedVardefinitialize(name)@name=nameendendclassExample2includ

ruby - 如何将类名作为变量传递给ruby中的另一个类

我正在尝试学习用ruby​​创建一个多类程序。我编写了一个引擎类和一些其他类,如城市、街道等,但在将类名作为变量传递给其他类时遇到了问题。下面的代码抛出错误:“City.rb:15:in'intro':undefinedlocalvariableormethodgame'for#(NameError)”。我在某种程度上理解这个问题,但我认为这个城市不需要知道任何关于游戏对象,我认为它只需要获取它并将其传回即可。但表面上我对如何在类之间传递变量(尤其是类名)有误解。我的设计有什么问题?#Game.rbrequire'./City.rb'classEnginedefinitialize(c

ruby 数组将 first,second 放入变量,其余放入另一个变量

我想把一个数组分成三个变量;第一个值放入一个变量,第二个值放入另一个变量,其余所有放入一个字符串,例如:arr=["a1","b2","c3","d4","e5","f6"]var1=arr[0]#var1=>"a1"var2=arr[1]#var2=>"b2"var3=?#var3shouldbe=>"c3d4e5f6"需要什么代码来实现每个变量的列出值? 最佳答案 这看起来和任何东西一样好:arr=["a1","b2","c3","d4","e5","f6"]var1=arr[0]#=>"a1"var2=arr[1]#=>"b2

ruby - 具有 block 局部参数的多个 Kernel#local_variables 条目

我在ArchLinux上使用这个版本的Ruby。我还尝试了ruby​​1.9中的第一个代码片段,结果相同。ruby-vruby2.1.0p0(2013-12-25revision44422)[x86_64-linux]uname-aLinuxryantm0j1323.12.7-2-ARCH#1SMPPREEMPTSunJan1213:09:09CET2014x86_64GNU/Linux下面这三个片段是独立的程序。当我使用隐藏变量的block局部变量时,local_variables数组包含3个条目:a=1putslocal_variables.inspect#=>[:a]proc{|

ruby - 扩展模块和类变量访问?

我无法理解为什么在以下示例中访问模​​block的类变量失败:moduleM@@xyz=123endM.class_variables#[:@@xyz]M.class_variable_get:@@xyz#123,sofarsogoodclassCextendMendC.singleton_class.class_variables#[:@@xyz]C.singleton_class.class_variable_get:@@xyz#NameError:#uninitializedclassvariable@@xyzinClass谁能解释为什么类变量@@xyz在C的单例类中突然无法访问