小编Pur*_*eas的帖子

为什么Ruby setter需要"自我".课程内的资格?

Ruby setters - 无论是由类创建(c)attr_accessor还是手动创建- 似乎是self.在类本身内访问时需要限定的唯一方法.这似乎使Ruby独自成为语言世界:

  • 所有方法都需要self/ this(像Perl,我认为是Javascript)
  • 没有方法需要self/ this是(C#,Java)
  • 只有setter需要self/ this(Ruby?)

最好的比较是C#VS红宝石,因为这两种语言都支持这句法工作就像类的实例变量的访问方法:foo.x = y,y = foo.x.C#称它们为属性.

这是一个简单的例子; Ruby中的相同程序然后是C#:

class A
  def qwerty; @q; end                   # manual getter
  def qwerty=(value); @q = value; end   # manual setter, but attr_accessor is same 
  def asdf; self.qwerty = 4; end        # "self." is necessary in ruby?
  def xxx; asdf; end                    # we can invoke nonsetters w/o "self." …
Run Code Online (Sandbox Code Playgroud)

ruby

70
推荐指数
3
解决办法
9384
查看次数

你如何删除Rails中的通配符cookie?

如何删除使用通配符域设置的rails中的cookie:

cookies[:foo] = {:value => 'bar', :domain => '.acme.com'}
Run Code Online (Sandbox Code Playgroud)

按照文档,您可以:

cookies.delete :foo
Run Code Online (Sandbox Code Playgroud)

日志说

Cookie set: foo=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT
Run Code Online (Sandbox Code Playgroud)

请注意,域名丢失了(似乎所有内容都使用默认的参数).尊重RFC,当然cookie还在那里,浏览器 - > ctrl/ cmd- L- >

javascript:alert(document.cookie);
Run Code Online (Sandbox Code Playgroud)

瞧!

问:删除这样一个cookie的"正确"方法是什么?

ruby-on-rails

13
推荐指数
1
解决办法
8179
查看次数

ruby命令行开关-rubygems&-r是否兼容?

我最近将一个ruby库转换为gem,这似乎打破了命令行的可用性

作为图书馆工作得很好

  $ ruby -r foobar -e 'p FooBar.question' # => "answer"
Run Code Online (Sandbox Code Playgroud)

作为一个gem,irb知道如何从命令行开关中获取gem

  $ irb -rubygems -r foobar
  irb(main):001:0> FooBar.question # => "answer"
Run Code Online (Sandbox Code Playgroud)

但红宝石本身也是如此:

  $ ruby -rubygems -r foobar -e 'p FooBar.question'
  ruby: no such file to load -- foobar (LoadError)
Run Code Online (Sandbox Code Playgroud)

我现在必须这样做,这看起来很难看:

  ruby -rubygems -e 'require "foobar"; p FooBar.question' # => "answer"
Run Code Online (Sandbox Code Playgroud)

或者有没有办法让2个开关工作?

注意:我知道gem可以为每个有用的方法添加bin/program但我不喜欢不必要地污染命令行命名空间

ruby rubygems

6
推荐指数
1
解决办法
2988
查看次数

标签 统计

ruby ×2

ruby-on-rails ×1

rubygems ×1