2015-04-02 48 views
0

問題是我有一個名爲empaccrl的模型,該表稱爲accrl。在accrl中,我有一個名爲accrual_code的列,來自此列的數據是PERSDAY3或VACATION1 ...我如何將它們的名稱更改爲Personal和Vacation,而不必更改我的數據庫中的數據...這就是我迄今爲止,但似乎不起作用。任何幫助將不勝感激!我怎樣才能改變一些東西在鋼軌中有不同的名字?

這是我empaccrl模型

class Empaccrl < ActiveRecord::Base 

    establish_connection :dev 

    self.table_name = 'accrl' 

    belongs_to :entry 


    def accrual_code 
    if @accrual_code == "PERSDAY3" 
     accrual_code = 'Personal' 
    end 
    if @accrual_code == "VACATION1" 
     accrual_code = 'Vacation' 
    end 
end 

這是我的看法

%table.table.table-bordered.trace-table 
    %tr 
    [email protected] do |ea| 
     %tr 
     %td.trace-table.bordered.trace-table{:style => 'width:10%;'}= ea.accrual_code 

我也試過這個...它沒有工作..

 %table.table.table-bordered.trace-table 
    %tr 
    [email protected] do |ea| 
    - if ea.accrual_code = "PERSDAY3" 
     %tr 
     %td.trace-table.bordered.trace-table{:style => 'width:10%;'}= ea.accrual_code = "Personal" 
    - else 
     %tr 
     %td.trace-table.bordered.trace-table{:style => 'width:10%;'}= ea.accrual_code = "Vacation" 

回答

0

你'關閉!問題是實例變量@accrual_code沒有值。 Rails沒有爲屬性設置實例變量。您可以改爲使用self[attribute_name]訪問該值:

def accrual_code 
    case self[:accrual_code] 
    when "PERSDAY3" then "Personal" 
    when "VACATION1" then "Vacation" 
    else self[:accrual_code] 
    end 
end 
+0

謝謝!工作! @Jordan – Snowman88 2015-04-02 16:58:56

+0

很高興幫助!如果可以,請接受我的答案。 – 2015-04-02 17:06:42

相關問題