草庐IT

基本运算

全部标签

ruby-on-rails - 回形针如何更改基本名称(文件名)?

我正在尝试更改照片的基本名称(文件名):在我的模型中我有:attr_accessor:image_url,:basenamehas_attached_file:image,:styles=>{:original=>["300x250>",:png],:small=>["165x138>",:png]},:url=>"/images/lille/:style/:id/:basename.:extension",:path=>":rails_root/public/images/lille/:style/:id/:basename.:extension"before_save:basena

ruby - # Ruby 中识别方法约定的基本原理/历史是什么?

例如,我一直看到称为String#split的方法,但从未见过String.split,这似乎更合乎逻辑。或者甚至可能是String::split,因为您可以认为#split位于String的命名空间中。当假定/隐含类(#split)时,我什至单独看到了该方法。我知道这是ri中识别方法的方式。哪个先出现?例如,这是为了区分方法和字段吗?我还听说这有助于区分实例方法和类方法。但这从哪里开始呢? 最佳答案 不同之处在于您如何访问这些方法。类方法使用::分隔符来表示消息可以发送到类/模块对象,而实例方法使用#分隔符表示消息可以发送到实例对

ruby - Ruby 中的一元加运算符有什么意义?

除了与一元减号形成良好的对称性之外,为什么要在Numeric类上定义一元加号运算符?它是否有一些实用值(value),除了引起混淆允许编写类似++i的东西(与大多数非Rubyist认为的不同,它不会增加i).我可以想到在自定义类上定义一元加号的场景可能很有用(比如说,如果您正在创建一些性感的DSL),所以能够定义它是可以的,但为什么它已经在Rubynumbers上定义了? 最佳答案 也许这只是一个一致性问题,既与其他编程语言一致,又反射(reflect)一元减号。在TheRubyProgrammingLanguage中找到对此的支持

ruby - ruby on rails 中的 SQL Like 运算符

我的任务是选择搜索名字以参数值和所选值中的城市开头的学生。如何在ruby​​onrails中进行设置?我确实喜欢这个,但这不起作用Controllerdefliststudentcount=Student.count()putsstudentcount@studentname=Student.where("namename1ANDcity=:cityId1",{:name1=>params[:name],:cityId1=>params[:cityId]})puts'studentname'puts@studentname.inspect@students=Student.limit(

ruby-on-rails - Rails ActiveRecord Shovel (<<) 运算符

所以我的应用程序中有代码附加到与“classBlogPost而且它似乎有效。我从来没有真正质疑过它或想知道它何时调用“保存”(我想我从来没有深刻理解何时开始调用“保存”)。但是,似乎after_save在我的add_comment中没有激活评论Hook功能,提示我问:如何运算符(operator)在activerecord中工作,我在哪里可以阅读更多相关信息?谢谢 最佳答案 当您使用shovel运算符(),Rails会自动保存关联的对象。所以,当你这样做时:self.comments@new_comment被添加到comments收

ruby -::MyClass Ruby 作用域运算符是做什么的?

::MyClass/MyModule作用域运算符在Ruby中的作用是什么,它的目的是什么? 最佳答案 这在全局范围内明确引用了MyClass。如果在全局范围内有一个MyClass,但在SomeModule内部也有一个MyClass,那么从SomeModule内部引用MyClass将引用模块内部的MyClass,而不是全局MyClass。说::MyClass明确引用全局范围内的MyClass。classMyClassdefself.somethingputs"GlobalMyClass"endendmoduleSomeModulecl

ruby - Heroku 上 Rack::Static 应用程序的 HTTP 基本身份验证

我在Heroku上托管了一个简单的Rack应用程序。配置.ru:useRack::Static,:urls=>["/stylesheets","/images","/javascripts"],:root=>"public"runlambda{|env|[200,{'Content-Type'=>'text/html','Cache-Control'=>'public,max-age=86400'},File.open('public/index.html',File::RDONLY)]}如何向其中添加HTTP基本身份验证?如果它只适用于生产环境,则加分。谢谢

ruby - Double-splat 运算符破坏性地修改哈希值——这是 Ruby 错误吗?

我注意到我发现Ruby2.1.1中的**(double-splat)运算符有一个非常令人惊讶的行为。当在**hash之前使用键值对时,hash保持不变;但是,当仅在**hash之后使用键值对时,哈希将被永久修改。h={b:2}{a:1,**h}#=>{a:1,b:2}h#=>{b:2}{a:1,**h,c:3}#=>{a:1,b:2,c:3}h#=>{b:2}{**h,c:3}#=>{b:2,c:3}h#=>{b:2,c:3}为了比较,请考虑数组上单*运算符的行为:a=[2][1,*a]#=>[1,2]a#=>[2][1,*a,3]#=>[1,2,3]a#=>[2][*a,3]#=>[

ruby - Ruby "==="运算符在范围上的含义

我最近开始学习Ruby,并且正在阅读以下内容RubyManual.在本手册中,他们说了以下内容(关于范围):Afinaluseoftheversatilerangeisasanintervaltest:seeingifsomevaluefallswithintheintervalrepresentedbytherange.Thisisdoneusing===,thecaseequalityoperator.通过这些例子:(1..10)===5»正确(1..10)===15»错误(1..10)===3.14159»正确('a'..'j')==='c'»真('a'..'j')==='z'»

数组前的 Ruby * 运算符

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Understandingrubysplatinrangesandarrays谁能告诉我下面这段代码中*的作用是什么?line="name=yabbi;language=ruby;"Hash[*line.split(/=|;/)]谢谢。