1

多くの BadgeElements を持つ Badge モデルを持つ Rails アプリに取り組んでいます。BadgeElements の動的な追加と削除を許可しようとしています。ryanb の nested_form ジェムに問題があったため、現在 Cocoon を見ています。gem を正しくインストールしたと思いますが、イベントが発生しません。関連付けを追加または削除するためのリンクをクリックすると、ページ上部の URL に # が追加されますが、それ以外は何も起こりません。関連するコードは次のとおりです。

Badge.rb:

class Badge < ActiveRecord::Base
  has_one :background, :dependent => :destroy
  has_many :badge_elements, :dependent => :destroy
  accepts_nested_attributes_for :background
  accepts_nested_attributes_for :badge_elements, :allow_destroy => true
  validates :title, presence: true, length:{minimum: 3}
end

_form.html.haml:

= form_for @badge, html:{class:"form-horizontal edit_badge", data:{id:@badge.id}} do |f|
  %table
    %tbody
      .field
        %tr
          %td= f.label :title
          %td= f.text_field :title
      #badge_elements
        = f.fields_for :badge_elements do |badge_element|
          = render 'badge_element_fields', :f => badge_element
        .links
          = link_to_add_association 'Add an element', f, :badge_elements

_badge_element_fields.html.haml:

.nested-fields
  .field
    %tr
      %td
      %td= f.label :side
      %td= f.text_field :side, id: "badge_element_#{f.object.id}_side"
    ...
    ...
   = link_to_remove_association "remove element", f
4

1 に答える 1

1

必要な JavaScript コードがないようです。これにはいくつかの理由が考えられます (おそらくすべてを網羅しているわけではありません -- ここでは少し推測します)。

  • //= require cocoonあなたは行を追加しませんでしたapplication.js
  • application.jsアプリケーションのレイアウトに含めなかった
  • jquery を使用していない (または正しく含まれていない)
  • JavaScript コードに他のエラーがあり、JavaScript の処理が停止します。ブラウザの JavaScript コンソールにエラーが表示されます。
于 2014-07-30T07:58:25.730 に答える