模型中的Rails代码表现出不同的开发与生产

时间:2014-10-31 09:13:49

标签: ruby-on-rails-4

模型/ product.rb

class Product < ActiveRecord::Base

  # ... 

  def gen_filename(type)
    @tmp = self.filename
    while @tmp.include? "%type%"
       @tmp.sub! "%type%", type
    end
    @tmp
  end

end

views / products / list.hml.haml包含以下代码:

= product.filename
%br
- @filename=product.gen_filename( "xxx" )
= product.filename

开发中的输出是:

%type%.txt 
%type%.txt

生产中的输出是:

%type%.txt 
xxx.txt

有谁可以解释我做错了什么?

(我已经手工简化了代码,希望我没有犯错误)

:编辑

因此,这在开发生产模式中的工作方式相同:

  def gen_filename(type)
    @tmp = self.filename

    if !@tmp.nil?
      @tmp = @tmp.gsub("%type%", type)    
    end
    @tmp
  end

这种行为方式不一样

  def gen_filename(type)
    @tmp = self.filename

    if !@tmp.nil?
      while @tmp.include? "%type%"
         @tmp.sub! "%type%", type
      end
    end
    @tmp
  end

我发现这很奇怪。

1 个答案:

答案 0 :(得分:0)

循环是不必要的。

def gen_filename(type)
  @tmp = self.filename.gsub("%type%", type)
end

如果您仍然遇到问题,请发布围绕问题的实际代码,而不是简化版。