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列中输入数字,

我如何应用 i18n 来转换 1->male, 2->female ?

4

2 回答 2

0

您不能使用该方法将.gender值转换为整数吗?.to_i

= 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
于 2014-02-16T13:10:19.030 回答
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  %>

这将显示整数性别列的相应文本。

于 2015-02-26T17:38:16.460 回答