Tag: ruby的

在Textmate中为Ruby自动完成?

我真的习惯来自Netbeans的自动完成。 在Netbeans中,当我输入’string’然后点击’dot’时,它将打印出String类的方法列表。 TextMate似乎没有这个function。 这是你可以添加的东西吗? 可以节省大量时间,而不是一直使用ri / irb / online doc。

为什么真相&&“字符串”返回“字符串”

假设我有类似的东西 true && true #=> true 这是有道理的,所以我尝试这样的事情: true && “dsfdsf” #=> “dsfdsf” 这让我感到惊讶,因为我经常会做一些事情,比如if something && something和if something && something ,我总是认为那是评估为真的并且会回归真实。 进一步的实验做的事情如下: jruby-1.7.3 :009 > “ad” && “dsf” => “dsf” jruby-1.7.3 :010 > “ad” && “sdfd” && nil => nil jruby-1.7.3 :011 > “ad” && nil && “sdf” => nil 如果全部为真,或者它找到的第一个假值,Ruby似乎返回最后一个值。 为什么这样做? 这是一个正确的心理模型吗?

用户在Ruby on Rails中标记(喜欢的)另一个模型

我想在Ruby on Rails应用程序中实现“Read Later”(就像collections夹)系统。 我想要的是User模型能够标记Content模型以便稍后阅读。 我在两个模型之间的关联是这样的: class User < ActiveRecord::Base has_many :contents end ————- class Content < ActiveRecord::Base belongs_to :user end 然后内容属于Category等,但这对问题无关紧要,所以我只是没有把它放在那里。 User可以标记Content (可能属于另一个用户),并且每个用户都会有一个“标记内容(稍后阅读)”的列表。 我怎么能实现这个? 我已经读过这个问题,但我并不是真的理解,当我试图模拟它时,它没有用。

当我从TextMate运行时,为什么“获取”不能在我的Ruby脚本中工作?

运行以下ruby脚本时: puts gets.inspect 在终端上我被提示输入然后显示inspect输出,但是如果我使用CMD+R快捷方式从TextMate内部运行相同的脚本,那么它只输出nil ,好像没有gets方法。 为什么是这样? 从我所看到的内容,当脚本请求STDIN的输入时,TextMate应该显示一个输入对话框,但在这种情况下不会发生这种情况。

在ruby中发送POST?

任何好的库在ruby中发送POST头?

Ruby条件赋值和私有方法

从下面的代码中可以看出, ||=运算符是从类外部进行评估的。 class Foo attr_reader :bar def baz self.bar ||= ‘baz’ end private attr_writer :bar end puts Foo.new.baz # => in `baz’: private method `bar=’ called for # (NoMethodError) 引用关于官方扩展的接受答案|| =条件赋值运算符 : In other words, the expansion c = c || 3 is (excluding bugs like in pre-1.9) correct. 将baz方法重写为self.bar = self.bar || ‘baz’ self.bar […]

如何从NilClassinheritance或如何模拟类似的function

我只想使用Null对象设计模式,但我发现我可以inheritanceNilClass。 我可以写一个方法“nil?” 并返回false,但如果用户在下面编写代码,该怎么办 if null_object puts “shouldn’t be here” end 为了澄清我尝试做的是: record = DB.find(1) # if it can not find record 1, the bellow code should not raise exception record.one_attr # and what’s more if record puts “shouldn’t be here” end # I don’t want to override all NilClass

如何将32位整数转换为网络字节顺序?

如何将32位整数转换为网络字节顺序。 这样做的正确方法是什么? [1024].pack(“N”) 要么 [1,0,2,4].pack(“N”) 谢谢

我怎样才能避免Ruby中的真实性?

是否有任何标准方法可以避免Ruby中的真实性,或者我是否需要推出自己的解决方案,例如 class FalseClass def to_bool self end end class TrueClass def to_bool self end end true.to_bool # => true false.to_bool # => false nil.to_bool # => NoMethodError 42.to_bool # => NoMethodError 背景:我知道to_bool会违背Ruby的宽容性质,但我正在玩三元逻辑,并且想避免意外地做类似的事情 require “ternary_logic” x = UNKNOWN do_something if x 我正在使用三元逻辑,因为我正在编写一个flatmate共享网站的解析器(用于个人而非商业用途)并且某些字段可能缺少信息,因此不知道该地方是否存在是否符合我的标准。 但是,我会尝试限制使用三元逻辑的代码量。