0

在我已经使用Bootstrap 3的Rails 4应用程序中,我刚添加了Datetimepicker by eonasdanRails 4 x Bootstrap 3 Datetimepicker:用datetimepicker替换默认的datetime_select

我仔细地按照提供的说明herethere来安装插件。

这里是我的设置:

的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#NewPosts#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> 

这给了我在视图中的以下元素:

enter image description here

虽然设计远非完美,但现在,这不是我所关心的。

真正的问题是,当我建立讯息中,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填充帖子的日期。我在这里错过了什么吗?

-----

+0

在你的chrome dev控制台什么是传回给你的控制器的参数?我想你会发现它不是发送'日期',而是'starts_at'之一。 – DustinFisher

+0

对不起,如果这是一个愚蠢的回复......但我似乎无法看到我的开发控制台中的任何东西。我打开它,创建了一个帖子,没有出现任何内容。我做对了吗?另外,为什么你说我应该看到'starts_at',而我的代码中没有这个字符串?非常感谢您的帮助;) –

+0

如果您打开chrome开发工具并在您的表单上点击提交时转到“网络”选项卡,您应该会看到一篇文章给您的控制器,您可以在其中看到详细信息。或者你可以在你的控制器上放置一个调试器,并在它输入时检查参数。我说因为我实际上有类似的问题,那就是我发现的。不知道为什么,但这不是我期待的那个领域。 – DustinFisher

回答

2

来获取日期时间填入你的编辑页面上,你可以在JavaScript设置做到这一点:

<script type="text/javascript"> 
    $(function() { 
    $('#datetimepicker').datetimepicker({ 
     defaultDate: "<%= @post.date %>", 
     format: "YYYY-MM-DD hh:mm a Z" 
    }); 
    }); 
</script> 

我这里工作代码:Github - Rails Datetimepicker Example