Rails完整日历无法显示

时间:2015-04-28 08:55:45

标签: javascript ruby-on-rails indexing calendar

我正在尝试实施Example但我在开始时遇到了麻烦。我无法在页面上看到日历。但是,当我从网页下载代码并进行安排时,它可以工作。

所以我做的是

  1. 创建一个演示文件夹(rails new Demo)
  2. 生成脚手架(rails g scaffold事件标题:字符串描述:text start_time:datetime end_time:datetime)
  3. rake db:migrate
  4. 然后我添加了gem 'fullcalendar-rails'
  5. 捆绑安装
  6. 添加了js和css
  7. 添加js以启动日历
  8. 将div标记添加到index.html.erb
  9. 所以我仍然看不到日历。

    这是gem文件;

    source 'https://rubygems.org'
    
    gem 'rails', '4.2.1'
    gem 'sqlite3'
    gem 'sass-rails', '~> 5.0'
    gem 'uglifier', '>= 1.3.0'
    gem 'coffee-rails', '~> 4.1.0'
    gem 'jquery-rails'
    gem 'turbolinks'
    gem 'jbuilder', '~> 2.0'
    gem 'fullcalendar-rails'
    gem 'sdoc', '~> 0.4.0', group: :doc
    
    
    group :development, :test do
      gem 'byebug'
      gem 'web-console', '~> 2.0'
      gem 'spring'
    end
    

    这是index.html.erb

    <p id="notice"><%= notice %></p>
    
    <h1>Listing Events</h1>
    
    <table>
      <thead>
        <tr>
          <th>Title</th>
          <th>Description</th>
          <th>Start time</th>
          <th>End time</th>
          <th colspan="3"></th>
        </tr>
      </thead>
    
      <tbody>
        <% @events.each do |event| %>
          <tr>
            <td><%= event.title %></td>
            <td><%= event.description %></td>
            <td><%= event.start_time %></td>
            <td><%= event.end_time %></td>
            <td><%= link_to 'Show', event %></td>
            <td><%= link_to 'Edit', edit_event_path(event) %></td>
            <td><%= link_to 'Destroy', event, method: :delete, data: { confirm: 'Are you sure?' } %></td>
          </tr>
        <% end %>
      </tbody>
    </table>
    
    <br>
    
    <%= link_to 'New Event', new_event_path %>
    
    <br>
    
    <div id="calendar"></div>
    

    这是index.json.jbuilder文件

    json.array!(@events) do |event|
      json.extract! event, :id, :title, :description
      json.start event.start_time
      json.end event.end_time
      json.url event_url(event, format: :html)
    end
    

    这是events.js.coffee

    # Place all the behaviors and hooks related to the matching controller here.
    # All this logic will automatically be available in application.js.
    # You can use CoffeeScript in this file: http://coffeescript.org/
    #
    #
    $(document).ready ->
      $("#calendar").fullCalendar(
    
      )
    

    这是应用程序js和css文件;

    // This is a manifest file that'll be compiled into application.js, which will include all the files
    // listed below.
    //
    // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
    // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
    //
    // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
    // compiled file.
    //
    // Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
    // about supported directives.
    //
    //= require jquery
    //= require jquery_ujs
    //= require turbolinks
    //= require fullcalendar
    //= require_tree .
    
    /*
     * This is a manifest file that'll be compiled into application.css, which will include all the files
     * listed below.
     *
     * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
     * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
     *
     * You're free to add application-wide styles to this file and they'll appear at the top of the
     * compiled file, but it's generally better to create a new file per style scope.
     *
     *= require_self
     *= require_tree .
     *= require fullcalendar
     */
    

    我不知道这是否相关但是当我脚手架事件轨道创建了events.coffee文件夹但我将其更改为events.js.coffee,如示例中所示。 加载索引页时会加载所有js和css文件,但无法在页面上看到任何日历

1 个答案:

答案 0 :(得分:2)

使用turbolinks加载页面时,不会触发文档的事件就绪。 以下是turlolinks events的文档,它可能对您有帮助。