我已经阅读了其他问题和cocoon github wiki,尝试了示例Rails 4演示(可行)但我无法在我的项目中触发回调。
我的宝石文件有点长,但最相关的宝石恕我直言是主人(1.2.6),thrubyracer,turbolinks和spring的茧。
表单(请注意,data-no-turbolinks false和true没有效果):
%div{"data-no-turbolink" => "false"}
= simple_form_for @course, html: { class: "pure-form"} do |f|
= f.error_notification
.form-inputs
= f.input :name, label: false, placeholder: 'Nombre del Curso', html: {id: 'nombre'}
#subjects.well
= f.input :materia, collection: @materia, prompt: 'Seleccione una materia', value_method: :name
= f.input :tema_de_curso, collection: @tema, prompt: 'Seleccione el tema del curso', value_method: :name
= f.input :grado, collection: @grado, prompt: 'Seleccione el grado', value_method: :name
#bimesters.well
= f.simple_fields_for :bimesters do |bimester|
= render 'bimester_fields', :f => bimester
.links
= link_to_add_association 'Agregar Bimestre', f, :bimesters, class: 'btn btn-primary'
.form-actions
= f.button :submit, class: 'btn btn-success btn-block btn-lg'
部分:
.nested-fields
= f.input :name, collection: @bims, label: 'Bimestre', prompt: 'Seleccione el bimestre', value_method: :name
= link_to_remove_association 'Eliminar Bimestre', f, class: 'btn btn-danger pull-right', style: 'margin-bottom: 1em; '
JS(尝试使用演示项目的摘录来保持简单):
$(document).ready(function() {
$('#bimesters').bind('cocoon:before-insert', function(e,task_to_be_added) {
console.log(task_to_be_added);
task_to_be_added.fadeIn('slow');
task_to_be_added.fadeIn('slow');
});
});
关系也正常工作,所以模型和控制器应该没问题。我感觉它可能与turbolinks有关,但所有经过测试的排列都失败了。
我的主要目标是获取已创建的元素的id,因为我正在根据这些选择过滤其他嵌套的表单部分。