1

私はRailsに比較的慣れていません。Rails 3、UI Datepicker、jquery 日時セレクターのラッパーを備えたシンプルなフォームを使用しています。https://github.com/kristianmandrup/ui_datepicker-rails3の readme には、次の行があります。

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 の場合、アセットのパイプラインはデフォルトで有効になっています。

したがって、次の 2 つのオプションがあります。

Option 1: Disable asset pipelining
config/environments/development.rb に移動し (必要に応じて production.rb にも同じことを行います)、config.assets.digestfalse に設定します。


Option 2: Follow the workaround as mentioned in the documentation:
(リポジトリの readme ページからの抜粋)

Rails 3.1 でアセット パイプラインを使用する場合、このジェネレーターは非推奨になるため、app/assets/javascripts/application.js ファイルに次の行を追加する必要があります。
//= require jquery-ui

その他の更新 手の込んだ ajax の話題に飛び込む前に、Ajax の基本と、それをレールで実装する方法を理解する必要があります。この 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 をインストールすることをお勧めします。比較的簡単です。また、初心者の場合は組み込みのフォームビルダーを使用することをお勧めします。

于 2012-05-17T09:43:47.157 に答える