0

customer_gender是一個數組數組。如何在加載編輯表格時選擇默認值

我想選擇編輯表格上的當前值 但它沒有工作。

我認爲這個問題是性別的價值不是數字而是一個字符串,

如果值是一個字符串

customer_gender= [ 
['男', male], 
['女', female] 
] 

= simple_form_for(@customer) do |f| 
    .form-inputs 
    - customer_gender = Customer::GENDER.collect do |gender| 
     - t(gender) 
    = f.input :gender,label: t("gender"),as: :select, | 
    :collection => customer_gender, | 
    :include_blank => false, :selected => @customer.gender 


irb(main):003:0> cols(Customer) 
[ 
    [ 0] "id", ... 
    [11] "gender", 
] 

如果我必須把號碼gender如何解決這個問題列,

我該如何申請國際化域名轉換1->男性,2 - >女性?

+1

您確定@customer是否定義了性別屬性? – mmichael

+0

當然,我更新我的問題。 – newBike

回答

0

不能使用.to_i方法將.gender值轉換爲整數嗎?

= simple_form_for(@customer) do |f| 
    .form-inputs 
    = f.input :gender, label: t("gender"), as: :select, | 
    :collection => @genders, | 
    :include_blank => false, :selected => @customer.gender.to_i 
+0

但值是字符串類型,「男性,女性」如何解析爲整數? – newBike

+0

道歉 - 我以爲你用0/1表示性別。另一種語言也讓我困惑 - 讓我爲你做一個更新 –

+0

嗨,謝謝你的回覆,如果我必須把數字放在'性別'欄中, 我該如何申請i18n來轉換1->男性,2 - >女性?向用戶顯示「男性」而不是1 – newBike

0

添加到模型

def gender_txt 
    ["Not Telling", "Male", "Female"][self.gender - 1] 
end 
and in view 
<%= f.select :gender, User::GENDER_TYPES, 'data-bind' => 'value: user.gender', selected: @user.gender_txt %> 

這將顯示爲整數性別欄相應的文本。

相關問題