小编New*_*ria的帖子

红宝石边缘情况

ruby有一些边缘情况很难解释,因为解析会带来一些有趣的问题.我在这里列出其中两个.如果你知道更多,那么添加到列表中.

def foo
  5
end

# this one works
if (tmp = foo)
  puts tmp.to_s
end

# However if you attempt to squeeze the above
# three lines into one line then code will fail
# take a look at this one. I am naming tmp2 to 
# avoid any side effect

# Error: undefined local variable or method ‘tmp2’ for main:Object
puts tmp2.to_s if (tmp2 = foo)
Run Code Online (Sandbox Code Playgroud)

这是另一个.

def x
  4
end

def y
  x = 1 if false …
Run Code Online (Sandbox Code Playgroud)

ruby

3
推荐指数
2
解决办法
946
查看次数

为什么我的Chrome扩展程序的扩展程序管理图标没有显示?

我正在尝试在扩展程序面板中添加一个显示在Chrome扩展程序名称旁边的图标.我尝试使用以下manifest.json文件.

{
  "name": "My Extension",
  "version": "1.0",
  "manifest_version": 2,
  "icons": { "16": "mediumIcon.png", "48": "mediumIcon.png", "128": "mediumIcon.png" },
  "description": "A practice extension.",
  "browser_action": {
    "default_icon": "smallIcon.png",
    "default_popup": "load.html"
  }
}
Run Code Online (Sandbox Code Playgroud)

mediumIcon.png是128x128.当我在Chrome的"扩展程序"标签中输入开发者模式并加载解压缩的扩展程序时,该图标不在我的扩展程序名称旁边.实际上,图标的黑白版本会瞬间闪烁,然后会出现默认的Chrome扩展程序图标(看起来像拼图).

为什么不?我认为文档指出,图标可以在必要时缩小.

icons google-chrome-extension

3
推荐指数
2
解决办法
3461
查看次数

服务资产的发展非常缓慢

我有一个标准的rails 3 webapp与默认资产管道.突然之间,资产需要很长时间才能加载(我的页面加载时间大约为1-2秒到1分钟).服务器响应时间(/ home)是正常的,但是一些.css和.js文件等待很长时间(最多45秒).即采取这种只有少数资产,长期是指那些由宝石提供(例如:modernizr-rails/vendor/assets/javascripts/modernizr.js)

例如,对于modernizr.js?body=1:

头:

Request URL:http://dev.sharewizz.com:3000/assets/modernizr.js?body=1
Request Method:GET
Status Code:304 Not Modified
Run Code Online (Sandbox Code Playgroud)

统计:

DNS Lookup  5.00?s
Connecting  20.07?s
Sending     0
Waiting     10?ms
Receiving   3?ms
Run Code Online (Sandbox Code Playgroud)

它是链轮的问题吗?我怎么知道什么是错的?

注意:所有其他浏览器的行为相同. 编辑:实际上问题只有chrome,甚至没有safari.我试图在端口3000和端口80上使用rails s启动我的服务器(没有更改)

如果我访问http://localhost:3000/assets/modernizr.js?body=1,大多数时候它是即时的,有时它会等待很长时间.

assets google-chrome ruby-on-rails-3 sprockets asset-pipeline

3
推荐指数
1
解决办法
2881
查看次数

有没有直接的方法从rbenv获取ruby的宝石路径?

我想获取当前ruby的gem目录(在rbenv下).

这给了我bin bin:

rbenv which ruby
Run Code Online (Sandbox Code Playgroud)

我可以切换并满足我的需求,但我想看看是否有更直接的东西.

我在想

rbenv prefix
Run Code Online (Sandbox Code Playgroud)

是最好的选择.这给我留下了类似的东西

/Users/newalexandria/.rbenv/versions/1.9.3-p448
Run Code Online (Sandbox Code Playgroud)

我附加的

/lib/ruby/gems/1.9.1/gems
Run Code Online (Sandbox Code Playgroud)

我担心宝石版.想看到更好的东西.

rbenv

3
推荐指数
1
解决办法
718
查看次数

MySQL错误1(HY000)无法创建文件Errcode 2

我在rails应用程序上为ruby创建表时遇到问题.这让我疯狂!我尝试创建表时返回以下内容:

错误1(HY000):无法创建/写入文件'/usr/local/mysql/data/test_development/users.MYI'(错误代码:2)

值得一提的是,我是一个新手,顺便说一句.

mysql database-table

2
推荐指数
1
解决办法
2万
查看次数

如何为给定目录/路径中的所有文件设置vim的默认语法高亮显示?

如果我打开一个给定的邮件文件,~/maildir-sent/那么文件没有语法高亮.Vi具有邮件文件的默认突出显示,我可以手动启用它

:set ft=mail 默认情况下不会发生这种情况,因为那里的邮件文件具有笨拙的名称结构 1339174749.7162_2.tm24-s00418:2,S

默认情况下如何使邮件文件突出显示?IE我认为这个默认读取类似"所有与另一个语法高亮定义不匹配的文件"

vim syntax-highlighting

2
推荐指数
1
解决办法
900
查看次数

有没有办法让ruby的'创建!'可以同时制作多个对象?

我有一个偶尔吐出2个物体的系统.是否有任何魔法create!允许它创建两个对象?EG如果我说

self.class.create! make_up_attributes
Run Code Online (Sandbox Code Playgroud)

make_up_attributes传递一个2项哈希,这可以创建2个类型的对象self

(注意,create可能是一个ActiveRecord方法,在Rails中)

ruby activerecord ruby-on-rails

2
推荐指数
1
解决办法
2353
查看次数

Ruby如何允许数组成为哈希键?

我最近了解到你可以使用数组作为哈希键

Ruby如何实现这一目标?

  • 数组指针是散列键吗?
  • 或者是array_instance的object_id?
  • 或者是其他东西?

ruby arrays hash

2
推荐指数
1
解决办法
173
查看次数

使用不同命名的方法扩展Ruby父类的方法

我有一个类Parent和一个类Child(它是类的Parent).

  • Parent有一个叫做的方法aaaa.
  • Child有一个叫做的方法bbbb.

这就是我想要实现的目标:

  • 我想bbbb成为一个延伸aaaa.如果我调用aaaa一个Child对象,它将运行aaaa通常会执行的操作,以及其他内容bbbb.
  • 调用bbbb将执行与上面相同的操作(运行aaaa通常会执行的操作,然后执行其他操作bbbb).

这就是我最终做的事情:

class Parent

  def aaaa
    print "A"
  end

end

class Child < Parent

  alias_method :original_aaaa,:aaaa
  def bbbb
    original_aaaa
    print "B"
  end
  alias_method :aaaa,:bbbb

end

c = Child.new
c.aaaa # => AB
c.bbbb # => AB
Run Code Online (Sandbox Code Playgroud)

有效.我猜.但它感到非常hackish.另外,这样做的一个缺点是,如果我想aaaa在定义之前或之后使用相同的名称进行扩展,那么 …

ruby inheritance class

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

显示数组的子集

说我想要puts字母表.所以我可以这样做:

alphabet = ('a'..'z')
alphabet.map do |a|
    puts a
end
Run Code Online (Sandbox Code Playgroud)

我现在要做的是排除vowels.

alphabet = ('a'..'z')
vowels   = ['a','e','i','o','u']
alphabet.map do |a|
    puts a unless a == vowels
end
Run Code Online (Sandbox Code Playgroud)

我试图避免这种情况:

alphabet = ('a'..'z')
alphabet.map do |a|
    puts a unless a == 'a'
    puts a unless a == 'e'
    puts a unless a == 'i'
    puts a unless a == 'o'
    puts a unless a == 'u'
end
Run Code Online (Sandbox Code Playgroud)

我如何在语法上实现第二个示例,以便它正常工作?

ruby arrays

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