2017-08-17 70 views
0

我有一組枚舉值是根據用戶輸入定義的各種操作。現在我需要傳遞一個基於枚舉值的字符串。我怎麼做?如何根據HTML中的枚舉值設置文本?

enum status: { 
    signed_up: 0, 
    docs_uploaded: 1, 
    approved: 2, 
    rejected: 3 
} 
<div class="accountstatus"> 
    <p> <%= @current_user.status %> </p> 
</div> 

而是在一個div調用<%= @current_user.status %>的,我想字符串值分配給那些枚舉這樣:

0:成功註冊
1:上傳的文檔
2:帳戶批准
3:帳戶被拒絕

+0

只需將0,1,2,3數字更改爲有意義的字符串。也可以工作。 –

+0

@GillesLesire我可以保持它的值,並且只使用jQuery附加字符串,因爲它在站點的其他部分也被引用了嗎? – Avid

回答

0
en.yml 
    user: 
     status: 
     signed_up: Successfully Registered 
     docs_uploaded: Documents Uploaded 
     approved: Account approved 
     rejected: Account rejected 

.html.erb file 
    <div class="accountstatus"> 
     <p> <%= t("user.status.#{@current_user.status}") %> </p> 
    </div> 

使用翻譯文件顯示您的字符串。您稍後可以將您的字符串本地化爲不同的語言。

========================================

二計算策略

helper file : add method 

def get_status_name(code) 
    statuses = {"0" => "Successfully Registered", "1" => "Documents Uploaded", "2" => "Account approved", "3" => "Account rejected"} 
    return statuses["#{code}"] 
end 

<div class="accountstatus"> 
    <p> <%= get_status_name(@ current_user.status) %> </p> 
</div> 
+0

我可以保持它的值,並且只使用jQuery附加字符串,因爲它在網站的其他部分也被引用了嗎? – Avid

+0

我增加了另一個接近,請檢查。 –

+0

我收到以下錯誤@Sachin R - >語法錯誤,意外的tINTEGER,期待tSTRING_CONTENT或tSTRING_DBEG或tSTRING_DVAR或tSTRING_END狀態= {:0 =>「SAwaiting Documents」,:1 ... ^/home/avid/web /app/helpers/users_helper.rb:3:語法錯誤,意外',',期待keyword_end ... = {:0 =>「SAwaiting Documents」,....所有值 – Avid