草庐IT

Ruby/Sinatra : Passing a URL variable to an . erb 模板

我正在使用Padrino,我想从URL中取出参数并在.erb中使用它们模板。在我的应用程序设置中,我有:get'/testpage/:id'douserID=params[:id]render'test/index'end在我的test/文件夹我有index.html.erb已成功呈现,对于类似http://localhost:9000/testpage/hello123的网址.但是,我尝试打印params[:userID]在页面上:页面的其余部分呈现良好但hello123无处可寻。当我尝试我得到undefinedlocalvariableormethod`userID'for#我在这

ruby 方法 : how to return an usage string when insufficient arguments are given

在我创建了大量的类(使用初始化方法)之后,我将它们加载到IRb中以测试它们中的每一个。我通过创建简单的实例并调用它们的方法来了解它们的行为来做到这一点。然而,有时我不记得当我在类上调用.new方法时应该给出参数的确切顺序。它需要我回头看代码。但是,我认为返回使用消息应该很容易,而不是看到:ArgumentError:wrongnumberofarguments(0for9)所以我更喜欢返回一个带有人类可读参数的字符串,例如使用“puts”或仅返回一个字符串。现在我已经在begin-end代码中看到了rescue关键字,但我想知道在调用initialize方法时如何捕获ArgumentE

ruby-on-rails - rails 4 : get an image full url generated by Sprockets in production environment (inside rake task)

尝试在邮件程序呈现的View中获取图像的完整URL。Rails3+中是否有正确的方法来获取Sprockets生成的完整url?我知道请求对象hack,但由于邮件程序是在rake任务中调用的,显然,请求数据不可用。我正在运行Rails4beta1(edge) 最佳答案 在Rails4中,您需要在production.rb中包含以下内容config.action_controller.asset_host='yourdomain.com'config.action_mailer.asset_host='http://yourdomain

ruby - rake 数据库 :migrate runs into an error for an undefined method

我接管了一个由其他人建立的网站。我现在正试图在本地主机上启动并运行它。但是,当我迁移时,看起来以前的开发人员将代码放入可能依赖于已经存在的种子的迁移中。迁移文件如下所示。defupadd_column:supplies,:color,:stringSupply.where(:title=>"Shipped").first.update(:color=>'#e20ce8')enddefdownremove_column:supplies,:colorend当我运行rakedb:migrate时我在这个文件上遇到的错误是...rakeaborted!StandardError:Anerro

ruby-on-rails - rails : How do I add an additional parameter to resource-based link_to call?

我在routes.rb中定义了一个资源,如下所示:map.resources:users我喜欢使用最干净的link_to选项,它是:link_to@user不过,我想在此调用中添加一个附加参数:“view=local”如果我使用user_path,我会这样做:link_touser_path(@user,{:view=>'local'})有没有办法在不显式包含user_path函数的情况下获得相同的结果?理想情况下,我会做类似的事情:link_to@user,{:view=>'local'}但这似乎不起作用。 最佳答案 不,你不能。

ruby 1.8.7 : group_by with sum in an enumerable type

我有一个按以下结构排列的记录数组:[{"some_id"=>2,"some_total=>250},{"some_id"=>2,"some_total"=>100},{"some_id"=>3,"some_total"=>50},{"some_id"=>3,"some_total"=>50},{"some_id"=>3,"some_total"=>25},{"some_id"=>1,"some_total"=>10}]使用Ruby的group_by/inject/sum或Enumerable可用的任何方法的最佳方法是什么,以使其返回有序的哈希数组,其中每个哈希由“some_id”键控,

ruby - Ruby 中的终结器 : is there an equivalent to "__destruct" from PHP?

在PHP类中,解析器处理__construct和__destruct方法来实例化实例并在脚本退出或您使用unset时销毁它。当您扩展一个类时,您只需使用parent::__construct和parent::__destruct来运行任何可能需要在被扩展的类上运行的清理代码。现在在表示数据库数据并帮助您操作该数据的类的上下文中,我认为__destruct方法可用于将当前值与从数据库中获取的原始值进行比较,在必要时进行更新(在某些情况下,只要不能更改主键值,就始终进行更新)。在PHP中实现它非常简单。这种方法的主要优点是根据需要简单地快速操作类变量,然后让类在最后进行一次大更新。在运行数

ruby-on-rails - ruby rails : Calling an instance method from another model

我有一个Match模型和一个Team模型。我想在保存匹配后运行一个实例方法(在团队模型中编写)。这就是我得到的。团队.rbdefgoals_sumunlessgoal_count_cachegoal_count=a_goals_sum+b_goals_sumupdate_attribute(:goal_count_cache,goal_count)endgoal_count_cacheend并且有效。现在我需要在保存匹配项时运行它。所以我尝试了这个:匹配.rbafter_save:Team.goals_sumafter_destroy:Team.goals_sum而且它不起作用。我知道

Ruby 二维数组 : finding an object's coordinates

假设,我有一个二维数组A,并且声明其中某处有一个对象my_element。找出其坐标的最快方法是什么?我正在使用Ruby1.8.6。 最佳答案 这是一种方式。不过,我不确定这是最快的。classArraydefcoordinates(element)each_with_indexdo|subarray,i|j=subarray.index(element)returni,jifjendnilendendarray=[[1,2,3],[4,5,6],[7,8,9]]array.coordinates(3)#=>[0,2]array.c

ruby 鞋子 : counting the amount of times a value occurs in an Array

我正在使用Shoes在Ruby中制作Yahtzee游戏当我点击按钮“Two”时,代码应该计算值2出现在数组中。对于出现的值2的每个实例,分数增加2。此代码适用于特定数量的案例,但适用于其他情况,例如@array=[2,1,2,2,3]#数组中有三个2所以分数应该是6,但我的代码却返回4...为什么?button"twos"do@array.each_with_indexdo|value,index|if(@array[index]==2)@score=@score+2@points=@score+2end#ifend#loopend#button 最佳答案