Tag: ruby

Ruby on Rails高级JSON序列化

我想在我的rails应用程序中通过JSON呈现所有文章的索引以及完整的文章,但是我在弄清楚如何做到这一点时遇到了一些麻烦。 这是我的控制器: if params[:id] @article = Article.find(params[:id]) else @article = Article.published.not_draft.by_recent.first end respond_to do |format| format.js { render :json => @article.to_json( :except => [ :created_at, :updated_at, :draft, :id, :publish ], :include => { :comments => { :only => [:body] } }), :callback => params[:callback]} end 我想在响应中做的是添加所有文章的索引,如下所示: @index = Article.find(:all, :select => ‘id, title’) 我能够做到的唯一方法是将索引和文章放入哈希或数组中,然后将其放入JSON中。 @response […]

如何解决Rails模型命名空间冲突

到目前为止的故事: 我有一个名为“Term”的模型的rails应用程序。 一切都很好,直到尝试安装黄瓜。 跑步的时候 rake cucumber 我明白了 Term is not a class (TypeError) 这是因为Cucumber包含另一个gem,’term-ansicolor’(在控制台中执行漂亮的彩色文本输出),term-ansicolor定义了一个名为“Term”的模块。 在包含Rails模型之前,Cucumber包括term-ansicolor,因此在加载“Term”模型时,“Term”已被定义为模块。 顶级模块和类在Ruby中不能具有相同的名称,因此发生冲突。 我不想重命名模型,而是开始修补term-ansicolor gem。 事实certificate这比我想象的更难。 我将Term模块名称更改为“ANSITerm”,但我无法弄清楚如何让Cucumber加载我修改过的gem,我已将其放入RAILS_ROOT / vendor / gems / term-ansicolor。 有任何想法吗? 我吠叫错了树吗?

为什么Rails的“errors.full_messages”不替换属性和消息变量?

我刚刚创建的rails模型有一个奇怪的问题。 以下是我的validation: validates_presence_of :from_name, :message => ‘Please provide a from name.’ validates_presence_of :from_email validates_presence_of :giftition_plan_id 我在使用errors.full_messages以及f.error_messages中的errors.full_messages遇到问题: g = Giftition.create g.errors.first => [“from_name”, “Please provide a from name.”] >> g.errors.full_messages => [“{{attribute}} {{message}}”, “{{attribute}} {{message}}”, “{{attribute}} {{message}}”] 我刚收到”{{attribute}} {{message}}” 。 有任何想法吗? 更新:我已经卸载了rails 3以及随之安装的所有gem,这使问题消失了。 虽然这不是一个修复…我仍然希望安装rails 3。 更新:听起来像升级到2.3.9修复了问题。 不幸的是,我现在已经放弃了,但将来的某个时候我会尝试。

RMagick从图像中删除白色背景并使其透明

我需要从此图像中删除白色背景并使背景透明。 所以它只是透明背景上的黑色刻度,导出为png。 转过来 成 有任何想法吗?

强制浏览器下载文件而不是打开它

我想将http://foobar.com/song.mp3下载为song.mp3 ,而不是让Chrome在浏览器的原生播放器中打开它。 我怎么能这样做呢?

使用机架安装的多个Sinatra应用程序

我有一个关于在Sinatra上使用机架安装的问题。 我有两个经典风格的Sinatra应用程序。 让我们调用app.rb中定义的一个App和api.rb中定义的另一个API。 我希望它能让api.rb处理所有以’/ api’开头的路由,而app.rb会处理所有其他请求,包括root(’/’)。 如何使用机架安装进行设置? 或者有更好的解决方案吗?

创建Capistrano任务,根据角色执行不同的任务

我正在寻找一种方法来调用单个Capistrano任务来执行不同角色的不同操作。 Capistrano能够做到这一点,还是我为每个角色编写了一个特定的任务?

attr vs attr_accessor

在Ruby中,实例变量有四种不同的getter和setter方法, attr , attr_reader , attr_writer和attr_accessor 。 问题是,在Ruby attr :dilithium attr_reader :dilithium ,与attr_accessor :dilithium相同,并且与attr_accessor :dilithium相同,如果传递了一个额外的参数true? 那就是说 class Enterprise attr :dilithium, true 相同 class Enterprise attr_accessor :dilithium 两个函数attr和attr_accessor多余还是多余?

什么时候“已分配但未使用”成为Ruby的警告?

在什么版本或补丁级别中添加了以下警告? warning: assigned but unused variable – x 我从http://www.slideshare.net/tenderlove/nordic-ruby-2011听说过

正则表达式匹配未转义的引号

我正在寻找一个与任意字符串中未转义的引号匹配的正则表达式,但不是已经转义的引号,因此我可以转义未转义的引号。 我试图修改我发现的任何类似的解决方案,但没有捕获到我需要的确切内容。 正则表达式应该 abc”asd # match abc\”asd # not match abc\\”asd # match abc\\\”asd # not match abc\\\\”asd # match 所以基本上匹配前面有偶数个反斜杠(包括零)的任何引号,但不匹配前面有奇数个反斜杠的任何引号。 有人可以帮忙吗? PS:我想在ruby中这样做