0

私は現在Railsアプリに取り組んでいます。アプリでは、ユーザーの性別を編集できる必要があります。

これをラジオボックスを介して実装したかった(よくあることですが)。これは私が思いついたものです:

form_for @user do |f|
  - [:female, :male].each do |gender|
    = f.label :gender, t(:"helpers.label.member.gender_#{gender}"), value: gender
    = f.radio_button :gender, gender, checked: @user.gender == gender

ビューからできるだけ多くのロジックを削除したかったので、ビューヘルパーで同じものを構築しようとしましたが、ひどく失敗しました。

簡単なヘルパー メソッドを指定する方法

f.gender_select

また

f.gender_select @member

正しいラジオボックスを表示するだけですか?

また、Rails i18n がそれを利用する方法で、個々の選択オプションのラベルを指定するにはどうすればよいですか (たとえば、f.label :first_name自動的に翻訳されます)。

4

1 に答える 1

2
form_for @user do |form|
  - gender_radio_buttons(form)

application_helper.rb

module ApplicationHelper

  def gender_radio_buttons(form)
    [ :female, :male ].map do |gender|
      form.label(:gender, t(:"helpers.label.member.gender_#{gender}"), value: gender) +
      form.radio_button(:gender, gender, checked: @user.gender == gender)
    end.join("\n")
  end
于 2013-01-07T19:03:00.510 に答える