2014-10-31 67 views
0

型號/ product.rbRails代碼的行爲不同的開發與生產

class Product < ActiveRecord::Base 

    # ... 

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

end 

的意見/產品/ list.hml.haml containts驗證碼:

= 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 [email protected]? 
     @tmp = @tmp.gsub("%type%", type)  
    end 
    @tmp 
    end 

而且這種行爲不一樣

def gen_filename(type) 
    @tmp = self.filename 

    if [email protected]? 
     while @tmp.include? "%type%" 
     @tmp.sub! "%type%", type 
     end 
    end 
    @tmp 
    end 

我覺得這很奇怪。

回答

0

循環是不必要的。

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

如果仍然有問題,發佈實際代碼周圍的問題,而不是一個簡化版本。

+0

Deefour,謝謝你的快速回復。但是這對我沒有幫助,因爲你的改進仍然給我同樣的結果。在開發中,product.filename在生產中沒有改變,所以它被改變了。 – me1960 2014-10-31 12:36:28

+0

@ me1960這就是爲什麼我要求**實際**代碼,而不是你上面提到的一些簡單版本。 – deefour 2014-10-31 16:28:58

+0

我再次...... ;-)我剛剛再次考慮到這個問題......你從來沒有老到學習..我的錯誤,改善確實工作,但我仍然不清楚爲什麼我的代碼使用子給出生產和發展模式之間的不同行爲。我編輯問題。 – me1960 2014-11-02 14:58:10

相關問題