Tag: ruby

如何通过关系显示has_many的唯一logging?

我想知道什么是通过Rails3中的关系来显示来自has_many的唯一logging的最佳方式。 我有三个模型: class User < ActiveRecord::Base has_many :orders has_many :products, :through => :orders end class Products < ActiveRecord::Base has_many :orders has_many :users, :through => :orders end class Order < ActiveRecord::Base belongs_to :user, :counter_cache => true belongs_to :product, :counter_cache => true end 比方说,我想列出客户已经在他们的显示页面上订购的所有产品。 他们可能已经多次订购一些产品,所以我使用counter_cache根据订单数量以降序排列显示。 但是,如果他们多次订购产品,我需要确保每个产品只列出一次。 @products = @user.products.ranked(:limit => 10).uniq! 当一个产品有多个订单logging时工作,但如果一个产品只被订购了一次,则产生一个错误。 (排名是在别处定义的自定义sorting函数) 另一种select是: @products = @user.products.ranked(:limit […]

RVM在ZSH中不工作

我想尝试我的Mac上的ZSH shell,但是我也做了很多Ruby和Rails的开发,所以我也使用了RVM。 问题是,我似乎无法让RVM在ZSH中工作,而且在默认的Bash shell中工作正常: > zsh > rvm 1.9.2 > ruby -v ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0] > which ruby /usr/bin/ruby 我可以肯定地确认安装了RVM,以及RVM下的ruby 1.9.2; 我一直在Bash中使用它。 在ZSH中运行一个rvm list显示了这一点,有趣的是: rvm rubies ruby-1.8.7-p302 [ x86_64 ] => ruby-1.9.2-p0 [ x86_64 ] 这是我的iMac和MacBook Pro上发生的。 我在iMac上使用OS X 10.6.6,ZSH 4.3.9(4.3.10在笔记本电脑上)。 没有什么像哦,我的ZSH的花式。 我试着在RVM 网站上查看文档,但没有任何帮助。

轨道上挂载的ruby时,挂载

无论出于何种原因,rails控制台拒绝启动,它只是挂起。 我没有对我的代码进行任何更改,而使用相同版本的ruby和rails的其他项目也没有问题。 当我终于按Ctrl + C我得到这个堆栈跟踪,指向spring。 我不能解释为什么这是从一个时刻到下一个,它在哪里工作正常。 我已经通过RVM清除了所有的gem,并通过捆绑命令重新安装,但仍然没有运气。 任何想法,将不胜感激。 另外轨道服务器没有问题,据我所知,问题是项目相关的,但没有代码已经改变,唯一的轨道控制台有问题。 Ruby 2.1.2 Rails 4.1.4 user_a@ubuntu:~/work/app_a$ rails console ^C/home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/run.rb:54:in `gets': Interrupt from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/run.rb:54:in `verify_server_version' from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/run.rb:25:in `call' from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/command.rb:7:in `call' from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/rails.rb:23:in `call' from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client/command.rb:7:in `call' from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/client.rb:26:in `run' from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/bin/spring:48:in `<top (required)>' from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `load' from /home/user_a/.rvm/gems/ruby-2.1.2/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `<top (required)>' from /home/user_a/work/app_a/bin/spring:16:in `require' from /home/user_a/work/app_a/bin/spring:16:in `<top (required)>' […]

在Ruby中chr()的相反之处是什么?

在很多语言中,有一对函数chr()和ord() ,它们在数字和字符值之间进行转换。 在某些语言中, ord()被称为asc() 。 Ruby有Integer#chr ,这很好用: >> 65.chr A 很公平。 但是你怎么去其他的方式呢? "A".each_byte do |byte| puts byte end 打印: 65 这与我想要的非常接近。 但我真的宁愿避免循环 – 我正在寻找足够短的东西来声明一个const时可读。

在使用Phusion Passenger和Rails时,初始服务器启动速度缓慢

为了跳上Phusion Passenger的旅行车,我们为一个小型的Rails应用程序设置了一个登台服务器来testing事情。 到目前为止它已经非常好用了,它使安装/configuration和部署应用程序变得轻而易举。 问题是我们正在使用的网站不会经常碰到,它似乎closures在后台的服务器。 这意味着当有人进入网站时,他们有一个很长的等待,直到启动一个新的服务器来处理请求。 我们已经通读了文档,尝试了很多不同的设置(智能/智能lv2模式,passengeridletime等),仍然没有find一个真正的解决scheme。 在searchGoogle结果之后,我们无法find有用的信息。 目前,我们有一个cron作业,每隔一段时间发出一个请求,以保持服务器的运行。 是否有其他人遇到这个问题,你有什么build议修复?

ruby发送方法传递多个参数

尝试创build对象和dynamic调用方法 Object.const_get(class_name).new.send(method_name,parameters_array) 这是工作正常的时候 Object.const_get(RandomClass).new.send(i_take_arguments,[10.0]) 但是为了2而抛出错误数量的参数1 Object.const_get(RandomClass).new.send(i_take_multiple_arguments,[25.0,26.0]) 随机类定义是 class RandomClass def i_am_method_one puts "I am method 1" end def i_take_arguments(a) puts "the argument passed is #{a}" end def i_take_multiple_arguments(b,c) puts "the arguments passed are #{b} and #{c}" end end 有人可以帮助我如何发送多个参数dynamicruby方法

Class和Klass在ruby之间有什么区别?

Class和Klass有什么区别?

Ruby是否执行尾巴呼叫优化?

函数式语言导致使用recursion来解决很多问题,因此其中许多执行尾巴呼叫优化(TCO)。 TCO导致从另一个函数(或其本身,在这种情况下该函数也被称为TCOrecursion消除,这是TCO的一个子集)调用函数,作为该函数的最后一步,不需要新的堆栈帧,这减less了开销和内存使用。 Ruby显然已经从function语言(lambdas,像map等等的函数)中“借用了”一些概念,这让我很好奇:Ruby是否执行尾部调用优化?

在Ruby中传递一个方法作为参数

我正在试图用Ruby来解决一些问题。 为此,我尝试从“Programming Collective Intelligence”Ruby这本书中实现这些algorithm(Python中给出的)。 在第8章中,作者通过一个方法a作为参数。 这似乎在Python中工作,但不是在Ruby中。 我在这里有这个方法 def gaussian(dist, sigma=10.0) foo end 并想用另一种方法调用此方法 def weightedknn(data, vec1, k = 5, weightf = gaussian) foo weight = weightf(dist) foo end 我得到的只是一个错误 ArgumentError: wrong number of arguments (0 for 1)

如何在Rails 3中删除迁移文件

我想删除/删除一个迁移文件。 我将如何去做呢? 我知道在这里有类似的问题,但作为更新,有没有比脚本/销毁更好的方法? 另外,如果我删除/删除迁移,我应该做一个db:reset或db:drop吗?