我在创建新讲座的表单中使用time_field
中的'new' action (lectures/new.html.erb)
。
time_field
在我的应用中有一个默认时间格式(:),只允许用户更改':'
之前和之后的数字。
但是,当我在表单中使用time_field
(edit.html.erb)进行显示和更新时,时间字段为空。
所以我需要再次输入那个时间。控制器没有问题,所有其他数据在“编辑”表单中正确显示。
如何在lecture.new中显示开始时间作为编辑中的默认值?
<%=label_tag "Start Time" %><br>
<%= f.time_field :start_time, :class => "form-control", :placeholder => "Example: 10:00" %>
顺便说一句,占位符信息不会出现在'text-field'中。
答案 0 :(得分:3)
<%= form_for @lecture do |f| %>
<%= label_tag "Start Time" %><br>
<% if @lecture.new_record? %>
<%= f.time_field :start_time, :class => "form-control", :placeholder => "Example: 10:00" %>
<% else %>
<%= f.time_field : start_time , value: "#{@lecture.start_time}" %>
<% end %>
<%- end %>
我也面临着同样的问题,但是我已经修复了使用此逻辑/代码的问题。 我希望这将帮助您在“编辑”操作中显示已保存的数据。
答案 1 :(得分:0)
因为你要传递的不是符号,而是实际的记录值,所以你会得到这样的东西:
<%= form_for @lecture do |f| %>
<%= label_tag "Start Time" %><br>
<%= f.time_field :start_time, :class => "form-control", :placeholder => "Example: 10:00" %>
<%- end %>
当然,您必须确保为编辑操作正确设置了@lecture
,其方式如下:
@lecture = Lecture.find_by_id(params[:id])