2

ユーザーには多くの役割(名前:文字列)があります。ActiveAdminのユーザーフォームの場合、次のDSLコードがあります(app / admin / users.rbにあります)。

form do |f|
  f.inputs "Details" do
    f.input :email
    f.input :roles, as: :radio
  end
  f.buttons
end

dbには「basic」と「extended」という名前の2つの役割があり、Role.name属性から抽出された「basic」と「extended」というラベルの付いたラジオボタンでフォームをレンダリングします。

I18nアプローチを使用して、この属性の値を変換する必要があります。

ActiveAdminを使用して実行できますか、それとも自分でパーシャルを作成する必要がありますか?

ありがとう!

4

1 に答える 1

5

次のようなことを考えてみてください。

form do |f|
  f.inputs "Details" do
    f.input :email
    f.input :roles, :as => :radio, :collection => User.roles.map { |role| [I18n.t("active_admin.user.role.#{role.name}"), role.id] }
  end
  f.buttons
end
于 2013-01-17T21:55:33.023 に答える