模型/ 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
我发现这很奇怪。
答案 0 :(得分:0)
循环是不必要的。
def gen_filename(type)
@tmp = self.filename.gsub("%type%", type)
end
如果您仍然遇到问题,请发布围绕问题的实际代码,而不是简化版。