【发布时间】:2015-11-04 18:53:18
【问题描述】:
在我已经使用 Bootstrap 3 的 Rails 4 应用程序中,我刚刚添加了Datetimepicker by eonasdan。
这是我的设置:
宝石文件
gem 'momentjs-rails'
gem 'bootstrap3-datetimepicker-rails'
application.js
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require bootstrap
//= require bootstrap/dropdown
//= require moment
//= require bootstrap-datetimepicker
//= require turbolinks
//= require_tree .
application.scss
@import "bootstrap-sprockets";
@import "bootstrap";
@import 'bootstrap/theme';
@import 'bootstrap-datetimepicker';
@import "font-awesome-sprockets";
@import "font-awesome";
@import "simple_calendar";
@import "custom.scss";
@import "custom/**/*"
我确实已经重新启动了我的服务器。
现在,我正在尝试使用我的Posts#New 和Posts#Edit 视图表单中的插件来替换当前的datetime_select 字段:
<div class="field">
<%= f.label :date, "DATE" %>
<%= f.datetime_select :date %>
</div>
这是我第一次尝试后的位置:
<div class="form-group">
<div class='input-group date' id='datetimepicker'>
<%= f.label :date, "DATE & TIME" %>
<%= f.text_field :date, :class => "form-control"%>
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
<script type="text/javascript">
$(function () {
$('#datetimepicker').datetimepicker();
});
</script>
</div>
这在视图中为我提供了以下元素:
虽然设计远非完美,但就目前而言,这不是我关心的。
真正的问题是,当我创建一个帖子时,date 属性(这是一个datetime 数据类型)设置为nil,而不是在datetimepicker 中选择的值。
我在网上找了类似的情况,找到的最接近的是this Stack Overflow question。
不幸的是,它基于苗条的形式,我不知道如何将它们“翻译”成常规形式,以便在erb.html 文件中使用。
知道我的代码有什么问题吗?
————
更新:我找到了一种在创建帖子时实际上将日期保存到数据库的方法:
<div class="form-group" id="post_date_time">
<%= f.label :date, "DATE & TIME" %>
<div class='input-group date' id='datetimepicker'>
<%= f.text_field :date, :class => "form-control"%>
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<script type="text/javascript">
$(function () {
$('#datetimepicker').datetimepicker();
});
</script>
但是,它似乎在编辑表单上无法正常工作,因为我没有在 datetimepicker 中填充帖子的日期。我在这里遗漏了什么吗?
————
【问题讨论】:
-
在您的 chrome 开发控制台中,传递回控制器的参数是什么?我想你会发现它不是发送“日期”,而是发送“starts_at”之一。
-
对不起,如果这是一个愚蠢的回复......但我似乎在我的开发控制台中看不到任何东西。我打开它,创建了一个帖子,但什么也没有出现。我在做正确的事吗?另外,为什么你说我应该在其中看到
starts_at,而我的代码中没有这个字符串?非常感谢您的帮助;) -
如果您打开 chrome 开发工具并在点击表单上的提交时转到“网络”选项卡,您应该会看到一个帖子到您的控制器,您可以在那里看到详细信息。或者你可以在你的控制器上放一个调试器,当它碰到它时检查参数。我这么说是因为我实际上遇到了类似的问题,这就是我发现的。不知道为什么,但这不是我期望的领域。
-
好的,很酷。感谢您帮助遇到同样问题的其他人 ;) 我在我的网络中唯一能找到的是:
Content-Disposition: form-data; name="post[date]"这就是我们要找的吗?让我知道是否更容易跳到聊天来解决这个问题,我很高兴。 -
当然可以。
标签: ruby-on-rails forms twitter-bootstrap ruby-on-rails-4 datetimepicker