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