我可以在each_with_index循环迭代器中定义索引的偏移量吗? 我直截了当的尝试失败了: some_array.each_with_index{|item, index = 1| some_func(item, index) } 编辑: 澄清:我不想要一个数组偏移我希望each_with_index内的索引不是从0开始,但例如1。
我想分享一些控制器方法。 在轨道上做ruby的最佳做法是什么? 我应该创build一个抽象类,我的控制器扩展,或者我应该创build模块,并将其添加到每个控制器? 以下是我想要分享的控制器方法: def driving_directions @address_to = params[:address_to] @address_from = params[:address_from] @map_center = params[:map_center_start] # if we were not given a center point to start our map on # let's create one. if !@map_center && @address_to @map_center = GeoKit::Geocoders::MultiGeocoder.geocode(@address_to).ll elsif !@map_center && @address_from @map_center = GeoKit::Geocoders::MultiGeocoder.geocode(@address_from).ll end end def printer_friendly starting_point = params[:starting_point].split(',').collect{|e|e.to_f} ne […]
假设我有以下哈希: { :foo => 'bar', :baz => 'qux' } 我怎样才能dynamic地设置键和值成为对象的实例variables… class Example def initialize( hash ) … magic happens here… end end …所以我最终在模型里面 @foo = 'bar' @baz = 'qux' ?
我无法将其翻译成Ruby。 这是一段JavaScript,完全符合我想要的: function get_code(str){ return str.replace(/^(Z_.*): .*/,"$1"); } 我已经尝试过gsub , sub和replace,但似乎没有做我所期望的。 以下是我尝试过的一些例子: "Z_sdsd: sdsd".gsub(/^(Z_.*): .*/) { |capture| capture } "Z_sdsd: sdsd".gsub(/^(Z_.*): .*/, "$1") "Z_sdsd: sdsd".gsub(/^(Z_.*): .*/, "#{$1}") "Z_sdsd: sdsd".gsub(/^(Z_.*): .*/, "\1") "Z_sdsd: sdsd".gsub(/(.).*/) { |capture| capture }
是一个新手入门,请让我知道的方式来评论出一条线,也注释了* .html.erb文件中的一行块。
在编写RSpectesting时,我发现自己写了很多代码,看起来像这样,以确保在执行testing期间调用一个方法(为了争辩,让我们只是说我不能真正的询问状态因为该方法执行的操作不容易看到效果)。 describe "#foo" it "should call 'bar' with appropriate arguments" do called_bar = false subject.stub(:bar).with("an argument I want") { called_bar = true } subject.foo expect(called_bar).to be_true end end 我想知道的是:有比这更好的语法吗? 我是否错过了一些时髦的RSpec迷人,将上述代码减less到几行? should_receive听起来应该这样做,但进一步阅读听起来像这不完全是什么。
默认, rails s #running on 3000 port 现在我想在80端口上运行它。所以我尝试了: sudo rails -s -p80 但它抛出了一个错误: mlzboy@mlzboy-MacBook ~/my/b2c2 $ sudo rails s -p80 sudo: rails: command not found 我用rvm来安装ruby和rails。 看来rvm是用户指定的。 它不能在根中find轨道? 我也试过下面的代码: mlzboy@mlzboy-MacBook ~/my/b2c2 $ which rails /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/bin/rails mlzboy@mlzboy-MacBook ~/my/b2c2 $ sudo /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/bin/rails s -p80
我不能得到水豚与rspec工作。 它给了我这个错误: undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1:0x16529f8 @example=nil> 我知道有很多关于这个的post,但没有解决scheme正在为我工作。 他们中的大多数都涉及不在/规格/function的规格 – 这是我的。 首先是错误: $bundle exec rspec spec F Failures: 1) security signs users in Failure/Error: visit "/sessions/new" NoMethodError: undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1:0x16529f8 @example=nil> # ./spec/features/security_spec.rb:4:in `(root)' Finished in 0.006 seconds 1 example, 1 failure Failed examples: rspec ./spec/features/security_spec.rb:3 # security signs users in 我认为重要的是要注意,一开始我使用URL […]
任何人都可以解释通过self.attribute和@attribute访问实例属性之间的区别?
我似乎无法find有关自定义exception类的很多信息。 我所知道的 你可以声明你的自定义错误类,让它inheritance自StandardError ,所以可以rescue d: class MyCustomError < StandardError end 这可以让你用下面的方法提高它: raise MyCustomError, "A message" 之后,在救援时得到这个消息 rescue MyCustomError => e puts e.message # => "A message" 我不知道 我想给我的例外一些自定义字段,但我想inheritance父类的message属性。 我发现读这个主题 @message不是一个exception类的实例variables,所以我担心我的inheritance将无法正常工作。 任何人都可以给我更多的细节呢? 我将如何实现具有object属性的自定义错误类? 以下是正确的: class MyCustomError < StandardError attr_reader :object def initialize(message, object) super(message) @object = object end end 接着: raise MyCustomError.new(anObject), "A message" 要得到: rescue […]