在我已经使用Bootstrap 3的Rails 4应用程序中,我刚添加了Datetimepicker by eonasdan。Rails 4 x Bootstrap 3 Datetimepicker:用datetimepicker替换默认的datetime_select
这里是我的设置:
的Gemfile
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 dev控制台什么是传回给你的控制器的参数?我想你会发现它不是发送'日期',而是'starts_at'之一。 – DustinFisher
对不起,如果这是一个愚蠢的回复......但我似乎无法看到我的开发控制台中的任何东西。我打开它,创建了一个帖子,没有出现任何内容。我做对了吗?另外,为什么你说我应该看到'starts_at',而我的代码中没有这个字符串?非常感谢您的帮助;) –
如果您打开chrome开发工具并在您的表单上点击提交时转到“网络”选项卡,您应该会看到一篇文章给您的控制器,您可以在其中看到详细信息。或者你可以在你的控制器上放置一个调试器,并在它输入时检查参数。我说因为我实际上有类似的问题,那就是我发现的。不知道为什么,但这不是我期待的那个领域。 – DustinFisher