1

私はこの見栄えの良い宝石をインストールし、それを機能させるために過去 2 時間を費やしました。

親フォーム内にネストされたフィールドを表示し、レコードを作成/更新することができました。

ただし、JS リンクの追加/削除は機能しません。これは、コンソールでこのエラーが発生しているためです。

Uncaught TypeError: Object [object Object] has no method 'nestedFields' neste_attributes_forms.js:2
(anonymous function) neste_attributes_forms.    js:2
fire                                            jquery.js:1018
self.fireWith                                   jquery.js:1128
jQuery.extend.ready                             jquery.js:417
DOMContentLoaded

私はJSでかなり新しいです。だから、私は問題が何であるか分かりません。

gem ページにあるのと同じコードを試してみました。

$(document).ready(function(e) {
  $('FORM').nestedFields();
});

また、divのIDで呼び出してみました。しかし、役に立たない。ページのソースを確認したところ、このコードが読み込まれました。

私が何を見逃しているか分かりますか?どんな助けでも大歓迎です!!!

フォームの一部: haml

= form_for(@event) do |f|
  ....somefields....

  #nested_layers   
    .items
      = f.nested_fields_for :details do |f|
        %fieldset.item
          = f.label :town
          = f.text_field :town
          %a.remove{:href => "#"} remove
          = f.hidden_field :id
          = f.hidden_field :_destroy
    %a.add{:href => "#"} add phone
  ..someOtherFields....

アプリケーション.js

//= require jquery
//= require jquery_ujs
//= require jquery-ui-1.9.2.custom.min
//= require jquery.nested-fields
....

修正済み: Application.js には、削除してはならない非常に巧妙な文が含まれています。したがって、すべての //= require... が別のすぐ下にあることを確認してください。そうしないと、メソッドを見逃すことになります!!

4

1 に答える 1

0

必要な JavaScript ライブラリがロードされていないようです。次のことを確認してください。

//= require jquery.nested-fields

に適切に含まれていますapp/assets/javascripts/application.js

于 2013-04-09T19:14:32.913 に答える