0

f selectとして次のものがあります

データベースの内容を表示するように変更するにはどうすればよいですか?

 <%= f.select :phase_names, options_for_select([["Select One", "", @phase_names_string_value], "RFP Stage", "Pre Contract", "Awarded", "Unsuccessful", "Completed"]), :class => 'inputboxes' %>

Phase Names は、データベースの 2 番目のテーブルからのものです。ただし、各プロジェクトは一度に 1 つのフェーズにしか配置できません。

前もって感謝します

4

1 に答える 1

0
options_for_select(container, selected = nil)

コンテナは表示\値の組み合わせなので、必要な[[value,name],[value,name]]場合、または同じ場合[name]

お気に入り["RFP Stage", "Pre Contract", "Awarded", "Unsuccessful", "Completed"]

コンテナができたので、選択した値と一致するものが必要です

@current_value = MyModel.find(1).vari  # Assume MyModel table with id has col vari=Completed

次に、次のことができます

select_tag "select_name", options_for_select(["RFP Stage", "Pre Contract", "Awarded", "Unsuccessful", "Completed"].insert(0, "Select One"), @current_value)

:nameそれを行う別の方法は、選択された場所で言う(表示される)および:value(値として使用される)オプションを保持するオブジェクトのコレクションを持つことです:phase_names = :value

f.collection_select :phase_names, [:name => "rStage", :value => "Pre Contract"] , :value, :name, {:include_blank => 'Select one'}

これはアクティブレコードクラスと同じように機能します

于 2012-07-03T16:35:07.547 に答える