0

ユーザーがユーザー イベントを編集すると、ユーザー ページにリダイレクトされ、ユーザー イベントへのリンクが表示されます。

更新後、編集のために同じリンクをもう一度クリックすると、最後の編集で選択した新しい値ではなく、編集フォームの選択コントロールの最初の値が表示されます。

新しいデータは実際にデータベースに保存されています。

これは、選択したコントロールでのみ発生します。テキスト フィールドとチェックボックスを変更すると、新しい値が表示されます。

そのため、選択の最初の項目が常に表示されます。ユーザーが選択した値は、選択コントロールで選択されていません。

いつものように、事前に感謝します...

<%= f.label      :title, "Title (max 150 characters)" %>
<%= f.text_area :title %>

<div>
  <%= f.label      :user_event_type, "Event type" %>
  <%= f.select :user_event_type, options_for_select([['Sales Meeting',1],['Training',2],['Legal Briefing',3]]), {prompt: "select event type"} %>
</div>

  def edit
    @user_event = UserEvent.find(params[:id])    
  end

  def update
    @user_event = UserEvent.find(params[:id])    
    if @user_event.update_attributes(params[:user_event])
      flash[:success] = "Event successully updated"
      redirect_to user_url(current_user)
    else
      render 'edit'
    end
  end  
4

1 に答える 1

1

この投稿は答えを与えました:

Ruby on Rails: 選択ボックスに現在のオブジェクト値が表示されないのはなぜですか?

options_for_select を削除し、2 次元配列を select メソッドに 2 番目の引数として渡すだけで、選択済みが自動的に割り当てられます。

前:

<%= f.select :state, options_for_select([['Alaska',1],['Florida',2],['Texas',3]]) %>

後:

<%= f.select :state, [['Alaska',1],['Florida',2],['Texas',3]] %>
于 2013-06-22T06:38:36.630 に答える