1

我对 Rails 比较陌生。我正在使用 Rails 3,带有 UI Datepicker 的简单表单,它是 jquery 日期时间选择器的包装器。在https://github.com/kristianmandrup/ui_datepicker-rails3的自述文件中,有几行

Activate it like this:

UiDatePickerRails3.activate :simple_form

This can be done fx from inside an initializer. You can pass either :simple_form, :formtastic or :active_admin to the #activate method.

我不知道在哪里放置或运行 UiDatePickerRails3.activate :simple_form 来激活它。

我的查看代码

%h2
 Create new task
= simple_form_for @task do |f|
 = f.input :name, :wrapper_html => { :id => 'name' }
 = f.input :description, :wrapper_html => { :id => 'description' }
 = f.input :price, :wrapper_html => { :id => 'price' }
 = f.association :task_type
 = f.input :content, :as => :ckeditor, :label => "Nội dung task", :input_html => {:toolbar => 'Full' }
 = f.input :expired_at, :wrapper_html => {:id => 'expired_at', :class => 'ui-date-picker'}
 -#= f.input :expired_at, :as => :date_picker
 = f.button :submit

这是我的 application.js 文件

// 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
// the compiled file.
//
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
// GO AFTER THE REQUIRES BELOW.
//
//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require bootstrap
//= require_tree .
//= require ckeditor/init
4

1 回答 1

2

初始化程序应该在您的 config/initializers 目录中。
此 .rb 文件是在您运行安装生成器 ( rails generate jquery:install --ui)时创建的

更新:好的,您收到该消息的原因是您的 rails 版本是 3.1,它使用资产管道来压缩、连接您的 javascript 和 css。
对于 rails 3.1,资产流水线默认启用。

所以你有两个选择:

Option 1: Disable asset pipelining
转到 config/environments/development.rb(在需要时对 production.rb 执行相同操作)并设置config.assets.digest为 false。


Option 2: Follow the workaround as mentioned in the documentation:
(摘自存储库的自述页面)

在 Rails 3.1 中,当使用资产管道时,不推荐使用此生成器,因此您需要在 app/assets/javascripts/application.js 文件中添加一行:
//= require jquery-ui

更多更新在开始学习更 高级的 ajax 内容之前,您必须了解 Ajax 的基础知识以及如何使用 rails 来实现它。看看 这个 railscasts 插曲。这是一个很好的教程。

至于您的问题,您错过了很多事情:要让 jquery 工作,您需要适当的 JQuery CSS 和 Javascript 文件,可以从这里下载:jquery-ui

接下来,您需要通知您的应用程序在遇到这种情况时要采取什么措施:
:class => 'ui-date-picker'

但是,要理解这个概念,您需要了解 Ajax 和 jquery 的工作原理。

现在,只需创建一个新的 .js,将其命名为 datepicker.js 并添加以下内容
$(document).ready(function(){
$('input.ui-date-picker').datepicker();
$('input.ui-datetime-picker').datetimepicker();
});

这些步骤在此处的配置部分中有所提及。

我建议你安装rails 3.0.9,它相对简单。另外,初学者最好使用内置的表单生成器,在开始使用 simple_form 或 formtastic 之前先习惯它。

于 2012-05-17T09:43:47.157 回答