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,只需将二维数组作为第二个参数传递给 select 方法,它就会自动分配所选内容。

前:

<%= 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 回答