Tag: ruby

如何在Ruby 1.9上替换Unicode gem?

不幸的是,Unicode 0.1( sudo gem install unicode )在Ruby 1.9上不起作用。 我有以下代码段: require “rubygems” require “unicode” str = “áéíóúç” Unicode.normalize_KD(str).gsub(/[^\x00-\x7F]/n, “”) #=> aeiouc 我使用它将标题转换为永久链接,而不删除重音字符。 有没有办法使用pack或unpack方法转换这些文本?

加载后显示ruby文件的完整路径名

在阅读源代码时,我总是想知道文件加载时的完整路径,ruby中是否有任何回调方法来完成此操作,还是以其他任何方式执行此操作? 提前致谢。 编辑澄清评论: 我想知道在执行这一行时加载的“somefile”所在的位置:“load somefile”

安装Atomic时出错

我正在尝试使用bundle install将gem安装到我的新Ruby项目中。 我在OS X 10.8.4框中使用rbenv设置了Ruby版本。 我收到以下错误: An error occurred while installing atomic (1.1.13), and Bundler cannot continue. Make sure that `gem install atomic -v ‘1.1.13’` succeeds before bundling. Kikime:jazzcatalog curt$ gem install atomic Building native extensions. This could take a while… Successfully installed atomic-1.1.13 1 gem installed Kikime:jazzcatalog curt$ rbenv rehash Kikime:jazzcatalog curt$ bundle install […]

Emacs ruby​​-mode缩进行为

Foo级 attr_accessor:a, :时间,#ms自纪元以来 :B, :C 结束 在文本模式中,’a’之后列出的变量将如上所述缩进,但在ruby模式下,它们将与’attr_accessor’齐平。 在这种情况下,如何让ruby模式像文本模式一样缩进? 请注意,除了所有其他ruby-mode.el缩进规则之外,我还希望能够选择整个文件并点击cm- \以获得上述缩进。

仅允许管理员用户使用Devise在Rails中创建新用户(无外部模块)

目前,我的Users数据库有一个名为“admin”的列,其中包含一个布尔值,默认设置为false。 我有一个管理员用户播种到数据库中。 如何编写我的应用程序,以便管理员用户可以创建新用户,但不是的用户不能? (另外,用户只能由管理员创建) 似乎应该有一个简单的方法来设计,不涉及使用一些外部模块。 但到目前为止,我还没有找到满意的答案。 我更有可能标记出只有设计的解决方案。 (其中一个只是标准的MVC / Rails解决方案加一个)然而,如果真的有更好的方法来做不涉及CanCan我也可以接受。 注意: 我一直在寻找一段时间,我发现了其他几个与此问题非常类似的stackoverflow问题,但要么没有完全回答问题,要么使用其他非设计模块。 (或两者)

如何编译Ruby?

有没有一个工具可以让我编译Ruby代码,以便它运行得更快? 例如,我听说有一个名为“pyc”的Python工具允许我们编译代码,因此运行速度提高了10倍。

Rails:使用“attributes”方法将属性从对象复制到另一个对象

让模特Quote有属性[price, description] 让模型Invoice有属性[price, description, priority] 让我们使用属性{price: 10, description: ‘lamp’, priority: 10}从Model Invoice为对象invoice invoice = {price: 10, description: ‘lamp’, priority: 10} 假设我想将invoice属性复制到新quote 。 quote = Quote.new(invoice.attributes) 这引发了一个错误,即模型Quote中不存在priority 。 如何将invoice属性复制到新quote但只复制quote可以接受的属性?

如何配置ruby以在Ctrl-C(SIGINT)上进入调试器?

我想在输入ctrl-C(或发送SIGINT)时进入调试器。 我已经安装了调试器 (我正在运行Ruby 1.9.3)并validation它是否有效。 我已将此添加到我的安装文件中(这适用于Padrino,但我认为它与Rails类似): # file: config/boot.rb Padrino.before_load do trap(“SIGINT”) { debugger } if Padrino.env == :development end …但是键入Ctrl-C不会调用调试器。 事实上,如果我用puts “saw an interrupt!”替换debugger puts “saw an interrupt!” ,键入Ctrl-C也不会导致打印。 更新 根据Mike Dunlavey的 这个建议 ,我尝试在调试器中显式调用catch Interrupt : $ rdebug `which padrino` console ^Z^Z$HOME/usr/bin/padrino:9 require ‘rubygems’ (rdb:1) catch Interrupt Catch exception Interrupt. (rdb:1) c => Loading development […]

Sass :: SyntaxError:导入未找到或不可读的文件:生产中的指南针

我正在使用SASS + Compass和控制器特定的样式表,所以在我的application.html.erb中我设置: “all” %> 所以我有一个home.css(清单),我把: /* *= require_self *= require homepage */ 我的主页.css.scss: @import “sass/_all”; @import “bootstrap”; @import “compass”; … 即使在生产中我的主页也没关系,但是当我尝试vsit其他页面(比如/ tags)时,我收到此错误: Sass::SyntaxError: File to import not found or unreadable: compass. Load path: /home/user/apps/www.mysite.com/releases/20140416112240 (in /home/user/apps/www.mysite.com/releases/20140416112240/app/assets/stylesheets/tags.css.scss) Sass::SyntaxError: File to import not found or unreadable: compass. Load path: /home/user/apps/www.mysite.com/releases/20140416112240 (in /home/user/apps/www.mysite.com/releases/20140416112240/app/assets/stylesheets/tags.css.scss) 我不知道我是否必须设置@import “compass”; 在每个控制器特定的.scss文件,我不知道如何解决此错误。 我的application.rb: […]

Rails日期格式在表单域中

我想在文本字段中以mm / dd / year格式显示日期。 但是,他们目前显示为2010-03-26。 我可以设置一个全局设置来改变它吗? 我尝试了以下,似乎更新.to_s方法,但表单字段保持不变。 ActiveSupport::CoreExtensions::Date::Conversions::DATE_FORMATS.merge!(:default => ‘%m/%d/%Y’) 谢谢