Pickadate不是一个功能。轨道

时间:2017-08-11 11:12:59

标签: javascript jquery ruby-on-rails pickadate

这是我第一次来SO。我关心的是我得到了

Uncaught TypeError: $(...).pickadate is not a function
控制台中出现

错误。

在此之前,我能够包含在Javascript [F12 in Chrome]中检测到的文件(picker.js,picker.date.js,picker.time.js)。

以下是其他代码:

_form.html.erb

<div class="pure-control-group">
    <%= t.label :start_date %>
    <%= t.text_field :start_date, class: 'datepicker' %>
</div>

的application.js

//= require_self
//= require jquery
//= require rails-ujs
//= require angular
//= require angular-animate
//= require angular-resource


//= require picker
//= require picker.date
//= require picker.time
//= require globals
//= require users

globals.js

$(document).ready(function(){

    $('p').click(function(){
        $(this).hide();
    });

    $('.datepicker').pickadate();

});

2 个答案:

答案 0 :(得分:0)

对我来说,这样的问题是由我正在使用的jquery引起的,或者缺少它。我不得不使用yarn安装jquery:

yarn add jquery

完成后,应将其包含在您的node_modules文件夹中。确认您的config/initializers/assets.rb中包含以下行:

Rails.application.config.assets.paths << Rails.root.join('node_modules')

然后您可以像这样在您的assets/application.js中加入jquery:

//= require jquery/dist/jquery

由于某种原因,我无法获得jquery-rails软件包。 您可以找到具有更详细说明Read more here的相关资源,尽管它是用于在导轨上安装引导程序的资源,但它与导轨具有相同的概念。

此外,请确保您的Gemfile中包含pickadate-rails个gem,并且您已经运行了$ bundle install。将这些更改保留在您的application.js

//= require picker
//= require picker.date
//= require picker.time

进行更改后也重新启动服务器。

有关如何在rails上实现jquery-rails的更多信息,请查看以下链接: here

答案 1 :(得分:-1)

你可以试试这个

$(document).ready(function(){

    $('p').click(function(){
        $(this).hide();
    });

    $('.datepicker').pickadate(
    selectMonths: true, // Creates a dropdown to control month
    selectYears: 3 // Creates a dropdown of 15 years to control year
  });
);

});

或者如果我没有解决你的问题那么你可以尝试在gemfile中添加gem然后运行命令的rails方式。 pickadate最好的宝石是pickadate-rails