0

以下のコード例では、国のリストの最初の文字をどのように大文字にしますか? 私の質問は、collection_select を使用できる通常のフォームではなく、simple_form に関するものです。

    = p.input :state,
              :readonly => "readonly",
              :collection => DataState.where(:country => "1"),
              :selected => 1,
              :id => "state",
              :name => "state",
              :prompt => "Please choose"

問題は、州のリストがデータベースにあり、「alamaba」、「new york」のように保存されていることです。データベースでは小文字にする必要がありますが、見やすくするために最初の文字を大文字/大文字にしたいと考えています。

4

2 に答える 2

3

これを試して:

DataState モデルに、州名を大文字で表示するメソッドを追加します。

class DataState < ActiveRecord::Base
  def capitalized_state
    state.capitalize
  end
end

次に、この新しい方法を使用して選択肢をリストします

状態の ID を関連付けとして保存するか、文字列として保存しようとしているかに応じて、erb は次のいずれかになります。

<%= f.input :state, collection: DataState.where(:country => "1").pluck(:capitalized_state) %>

また

<%= f.input :state, collection: DataState.where(:country => "1"), value_method: :id, label_method: :capitalized_state %>

前者は州名、後者は関連 ID です。

これを参照してください: collection_select で大文字を使用する

編集: あなたの html では、選択のテキストとして使用している DataState クラスの属性が指定されていないことに気付きました。Rails を使用している場合は、collection_selectフォーム ヘルパーを調べる必要があります。

于 2013-10-15T18:34:20.547 に答える