【发布时间】:2011-04-20 02:56:18
【问题描述】:
首先,我是 HTML 和 RAILS 编码的新手。但作为学习经验的一部分,我为我正在工作的实验室设计了一个机器预订系统。我有一个表单 (show.html.erb) 来查看机器详细信息,如名称、ipaddress 等。有一个带有 datetime_select 的预订表格,小时数选项如下所示,
如您所见,这是非常基本的 html 编码。
...
机器细节
名称:
IP 地址:
处理器:
内存:
操作系统:
描述:
机器状态:
在线
离线
这台机器无法保留。见说明
<fieldset>
<legend>Create a New Reservation</legend>
<p style="color: red"><%= flash[:error] %></p>
<%= form_for [@machine, @reservation] do |f| %>
<div class="field">
<%= f.label :startdate, 'Start Time' %>:
<%= f.datetime_select :startdate %> (<b>PST</b> timezone)
</div>
<div class="field">
<%= f.label :purpose, 'Reason' %>:
<%= f.text_field :purpose, :size => 40 %>
</div>
<div class="field">
<%= f.label :hour, 'Hour(s)' %>:
<%= f.text_field :hour, :size => 2 %>
</div>
<div class="field">
<%= f.label :days, 'No of Days' %>:
<%= f.text_field :days, :size => 2 %>
</div>
<div class="actions">
<%= f.submit 'Reserve this machine' %>
</div>
<% end %>
<br />
</fieldset>
... 现在,当您单击机器的显示操作时,它会正确执行所有操作。显示所有机器详细信息,并在预订表格中显示当前时间。但是当我在一分钟后刷新页面时,它会刷新机器详细信息,但它不会(刷新)更改已使用 datetime_select 选项显示的时间。为什么?它怎么总是显示当前时间?我理解视图只不过是一个静态页面。 我在页面中添加了标签,该标签再次自动刷新整个页面,但似乎不会影响 datetime_select 选项中显示的日期。
有什么想法吗?非常感谢您的帮助。
谢谢。
汤姆
【问题讨论】:
-
能否也提供加载此表单的控制器方法的代码?
-
@brettish,这是来自 machines_controller.rb 文件的代码,def show @machine = Machine.find(params[:id]) @reservation = Reservation.new @reservation.user_id = session[: user_id] @noOfDays = 7 respond_to do |format| format.html # show.html.erb format.xml { 渲染 :xml => @machine } end end
-
尝试添加
@reservation.startdate = DateTime.now看看是否有任何作用。 -
另外要提的一点是,当用户点击“预订这台机器”操作时,它会创建预订,然后返回到同一页面,但这一次,“datetime_select”显示当前时间。
-
@brettish, @reservation.startdate = DateTime.now 没有做到这一点。
标签: ruby-on-rails datetime-select