当用户编辑用户事件时,他们会被重定向到用户页面,该页面会显示指向用户事件的链接。
更新后,如果他们再次点击同一链接进行编辑,他们会在编辑表单中看到选择控件的第一个值,而不是他们在上次编辑中选择的新值。
新数据实际上已保存到数据库中。
这仅适用于选择控件。对文本字段和复选框的更改会显示新值。
因此,选择的第一项始终显示。在选择控件中未选择用户选择的值。
一如既往,提前谢谢......
<%= 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
答案 0 :(得分:1)
这篇文章给出了答案:
Ruby on Rails: Why a select box does not show the current object value?
只需删除options_for_select,只需将2-d数组作为第二个参数传递给select方法,它就会自动分配所选。
在:
<%= f.select :state, options_for_select([['Alaska',1],['Florida',2],['Texas',3]]) %>
在:
<%= f.select :state, [['Alaska',1],['Florida',2],['Texas',3]] %>