Ruby on rails 链接到使用cocoon gem在rails 4中不起作用的关联

Ruby on rails 链接到使用cocoon gem在rails 4中不起作用的关联,ruby-on-rails,associations,nested-forms,cocoon-gem,Ruby On Rails,Associations,Nested Forms,Cocoon Gem,我有一个课程模型和一周模型,它与协会有关。“链接到”关联未在单击时呈现任何表单,并且没有生成用于检查错误的日志 课程模式 class Course < ApplicationRecord belongs_to :startup belongs_to :program has_many :weeks accepts_nested_attributes_for :weeks,allow_destroy: true end 典型错误:您将链接\u-to\u关联放在f.field

我有一个课程模型和一周模型,它与协会有关。“链接到”关联未在单击时呈现任何表单,并且没有生成用于检查错误的日志

课程模式

class Course < ApplicationRecord
  belongs_to :startup
  belongs_to :program
  has_many :weeks
  accepts_nested_attributes_for :weeks,allow_destroy: true
end

典型错误:您将
链接\u-to\u关联
放在
f.fields\u中,用于
循环。这意味着只有当已有嵌套元素可用时,才会显示链接

cocoon文档中的示例是haml,其中缩进非常重要。如果您不熟悉haml,也可以查看。所以在你的情况下,你应该写一些

  <div id='weeks'>
    <%= f.simple_fields_for :weeks do |week| %>
      <%= render 'week_fields', :f => week %>
    <% end %>
    <div class='links'>
      <%= link_to_add_association 'add week', f, :weeks, class: "btn btn-mod btn-medium btn-round submit-button" %>
    </div>
  </div>

周%>

您是否将
//=require cococoon
添加到application.js文件中?或者,如果您有js清单,请将其与管理部分分开,并尝试将
中的
字段包装成
,并将
链接到`,就像在文档中一样
 <%= form_for [:admin, @course] do |f| %>
  <%= f.label :name %> <br>
  <%= f.text_field :name, class: "input-md form-control mb-20" %><br> 
  <%= f.label :program_id, "Program" %> <br>
  <%= f.collection_select :program_id, Program.where('id'), :id, :name, {}, {class: "input-md form-control mb-20"} %>
  <%= f.label :duration %> <br>
  <%= f.text_field :duration, class: "input-md form-control mb-20" %>
  <%= f.fields_for :weeks, name: "weeks", id: 'weeks' do |week1| %>
     <%= render partial: 'week_fields', locals: {f: week1} %><br>
     <%= link_to_add_association 'Add more weeks', f, :weeks, class: "btn btn-mod btn-medium btn-round submit-button"%>
  <% end %>
  <%= f.submit :submit %>
<% end %>
ActiveAdmin.register Course do
    permit_params :name, :duration, :startup_id, :program_id, weeks_attributes: [:id, :name, :description]
    form partial: "new"
    controller do
    def new
        @course = Course.new
        @course.weeks.build
    end
end
  <div id='weeks'>
    <%= f.simple_fields_for :weeks do |week| %>
      <%= render 'week_fields', :f => week %>
    <% end %>
    <div class='links'>
      <%= link_to_add_association 'add week', f, :weeks, class: "btn btn-mod btn-medium btn-round submit-button" %>
    </div>
  </div>