草庐IT

修改参数

全部标签

ruby-on-rails - 将对象作为参数传递时,它们是通过引用传递的吗?

如果我执行以下任一操作,是否会对性能产生影响:defdo_something(user,article)...end对比defdo_something(user_id,article_id)..end我更喜欢传递对象,因为我可能需要其他属性。 最佳答案 是两种方法调用将花费相同的时间。(了解性能后果是件好事,您问了一个合理的问题,但即便如此,关于早期优化的标准免责声明1在技术上仍然适用。)1。首先,使程序运行。然后,简介。最后,也许,优化。DonaldKnuthsaid:我们应该忘记小事效率,比如说大约97%的时间:过早的优化是万恶

ruby - 是否可以在 Ruby 中定义带有可选参数的 block ?

我正在尝试动态定义调用另一个采用选项参数的函数的函数:classMyClass["hour","minute","second"].eachdo|interval|define_method"get_#{interval}"do|args|some_helper(interval,args)endenddefsome_helper(interval,options={})#Dosomething,withargumentsendend我希望能够以这两种方式调用MyClass的不同方法(有和没有可选参数):mc=MyClass.newmc.get_minute(:first_option

ruby - 如何在 Ruby 中检查参数 "param[:some_value]"

我知道一些检查参数是否为零的方法ifparam[:some_value]ifparam[:some_value].present?if!param[:some_value].nil?#unlessparam[:some_value].nil?if!param[:some_value].blank?#unlessparam[:some_value].blank?哪一个是正确的并且最受欢迎?它们之间有什么区别?我宁愿使用ifparam[:some_value]因为它最简单也最短。 最佳答案 以下是nil?、blank?和present?

ruby - 我可以告诉 Ruby 方法期望特定的参数类型吗?

defdoSomething(value)if(value.is_a?(Integer))printvalue*2elseprint"Error:Expectedintegervalue"exitendend我可以告诉Ruby方法某个参数应该是一个整数,否则会崩溃吗?像Java。 最佳答案 不,你不能。您只能做您已经在做的事情:自己检查类型。 关于ruby-我可以告诉Ruby方法期望特定的参数类型吗?,我们在StackOverflow上找到一个类似的问题: h

ruby - 如何修改图像的颜色以消除活力?

我如何改变颜色:进入这个:我使用Gimp生成输出图像,输入图像作为第一层,图像的背景色作为第二层,在图层面板中我选择模式“颜色”我想保留背景色,但希望颜色为棕色。有没有用ChunkyPNG做这个的想法?或者我应该将ImageMagick与颜色查找表一起使用吗? 最佳答案 感谢您的想法。我发现Linuxios中的那个最有帮助Gimplayermodesrequire"json"require"httpclient"require"chunky_png"moduleChunkyPNG::Colordefh(value)r,g,b=r(v

ruby-on-rails - 使用音译的 Rails 参数化不适用于阿拉伯语/Unicode 字符串

我有一个包含阿拉伯字符的字符串"محمود"当我尝试参数化这个字符串时,它返回空字符串“”x="محمود"x.parameterize=>""我检查了参数化代码,发现它调用I18n.transliterate返回问号“??????”我引用上一个问题HowdoyoucustomizetransliterationsinaRails3app?尝试自定义音译但仍然返回空白字符串。有什么帮助吗? 最佳答案 parameterize方法应该使字符串URL安全,并且对URL中可以出现的字符类型有严格限制。通常,任何不是严格a-z或0-9或-的

ruby-on-rails - 如何从查询字符串中删除空值参数

我有一个搜索表单,有很多选项,提交到带有Get请求的路由。网址是这样的:http://localhost:3000/restaurants/search?utf8=%E2%9C%93&city=&cuisine=&number_of_people=&query=hello有更多的参数。我想让它更干净一些,比如删除所有空白的参数。像这样:(基本上删除所有空白的参数)http://localhost:3000/restaurants/search?query=hello如何做到这一点?一种方法是使用CGI::parse("foo=bar&bar=foo&hello=hi")给你{"foo"

Ruby:跨进程转发接收者、参数和 block

给定这样的代码:p=procdo|*args,&block|pselfpargspblock[]ifblockendq=procdo|*args,&block|p'before'instance_exec(*args,&p)endo=Object.newo.define_singleton_method(:my_meth,q)o.my_meth(1,2){3}如何在保留q的接收者的同时将调用从p完全转发到q?基本上我也想打印3,但是instance_exec和所有ruby​​方法一样,只能占用一个block。是否可以在不更改p的情况下,让我可以互换使用p和q(我的想法是让q有时包装p)

c - C 扩展中的 Ruby 关键字参数

如何处理来自C扩展的Ruby2.0.0关键字参数?背景defexample(name:'Bob'hat_color:'red')puts"#{name}hasa#{hat_color}hat!"endexample#=>"Bobhasaredhat!"example(name:'Joe',hat_color:'blue')#=>"Joehasabluehat!"关键字参数(如上)在处理具有许多不同调用序列或选项的方法时非常有用。我在C扩展中有一个这样的方法(一种处理我项目中大部分OpenGL绘图的blit方法),我想知道如何让该方法处理来自ruby​​的关键字参数。想法根据我所做的一些

ruby - 以元编程方式定义采用关键字参数的 Ruby 方法?

Struct让我创建一个新类,它接受参数并具有一些很好的语义。但是,参数不是必需的,它们的顺序需要引用定义:Point=Struct.new(:x,:y)Point.new(111,222)#=>Point.new(111)#=>我想要类似于Struct的东西,但它使用关键字参数代替:Point=StricterStruct.new(:x,:y)Point.new(x:111,y:222)#=>Point.new(x:111)#=>ArgumentError这可能看起来像这样:moduleStricterStructdefself.new(*attributes)klass=Class