0

だから私はRORの初心者です.1ヶ月前から知っています(学校の課題で、「Google」を使用する必要があるcursusを取得していません)

したがって、すべての都市のリストを含むドロップダウン ボックスが必要です。次に、都市を選択した場合、city_id を日付と共にデータベースに保存する必要があります。これまでのコードは、保存をクリックしたときに都市が空であると表示されることを除いて機能しているようです(フェイルセーブのために空にすることはできません)

これは私のコードです

    <div class="field">
    <%= f.label :stad_id %><br />
    <% cities_array = Stad.all.map { |stad| [stad.naam, stad.land] } %>
    <%= select_tag(Stad, options_for_select(cities_array))  %>


    </div>
  <div class="field">
    <%= f.label :datum %><br />
    <% datum = Time.now.to_s(:db) %>
    <%= f.text_field :datum, :value => datum.inspect, :readonly => true %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

私は実際にそれを保存するコマンドを与えていない不気味な気持ちを除いて、私が間違っていることを本当に知りません.

ロビンに心から感謝します

4

1 に答える 1

0

ここで、間違っていることに気付くことがいくつかあります。

1)citys_arrayの作成をビューではなくコントローラーに入れます:

def edit
  @something = Something.find(params[:id])
  @cities_array = ... whatever ...
end

2)citys_array を作成するときは、都市の ID を次のように 2 番目のパラメーターとして指定する必要があります。

@cities_array = Stad.all.map { |stad| [stad.naam, stad.id] }

3) select_tag 呼び出しは Stad 用ではなく、保存しようとしているモデル用です。たとえば、フォームは次のようになります。

<%= form_for @something %>
  <%= f.label :city %>
  <%= f.select :city_id, @cities_array %>
  # or!
  <%= select :something, :city_id, @cities_array %>
<% end %>

これで問題が解決することを願っています。

于 2012-05-26T21:30:35.630 に答える