Я пытаюсь использовать гем Cocoon для добавления пользователей в актив. Единственная проблема заключается в том, что мне нужно настроить его для ограничения количества пользовательских ассоциаций, которые могут быть применены к активу, в зависимости от типа актива, которым они являются (аппаратное/программное обеспечение, с аппаратным обеспечением 1, программное обеспечение не будет определено ). На данный момент я могу просто продолжать добавлять ассоциации пользователей к активу. Есть ли способ ограничить количество ассоциаций?
Любая помощь приветствуется. Заранее спасибо.
Актив.шоу:
- if @asset.users.empty?
= simple_form_for([@asset_profile, @asset]) do |f|
#assets_users
= f.simple_fields_for :assets_users do |assets_user|
= render "assets_user_fields", :f => assets_user
.links
= link_to_add_association "Add Another User", f, :assets_users
= f.submit
_assets_users_fields.html.haml:
.nested-fields
= f.input :user_id, collection: @users.order(:last_name), :label => "User"
= link_to_remove_association "Remove", f
Я попробовал решение, которое я видел, по другому вопросу, но я получаю сообщение об ошибке Uncaught TypeError: number is not a function
в if $("#assets_users .nested-fields").length() is 1
.
Я пробовал javascript:
$ ->
check_to_hide_add_link = ->
if $("#assets_users .nested-fields").length() is 1
$("#assets_users .links a").hide()
else
$("#assets_users .links a").show()
return
$("#assets_users").bind "cocoon:after-insert", ->
check_to_hide_add_link()
return
$("#assets_users").bind "cocoon:after-remove", ->
check_to_hide_add_link()
return
check_to_hide_add_link()
return
Еще раз, любая помощь очень ценится.
РЕДАКТИРОВАТЬ: Ссылка на указанный вопрос: Кокон добавить ассоциацию, как ограничить количество ассоциаций
Сгенерированный javascript:
$(function() {
var check_to_hide_add_link;
check_to_hide_add_link = function() {
if ($("#assets_users .nested-fields").length() === 1) {
return $("#assets_users .links a").hide();
} else {
return $("#assets_users .links a").show();
}
};
$("#assets_users").bind("cocoon:after-insert", function() {
return check_to_hide_add_link();
});
$("#assets_users").bind("cocoon:after-remove", function() {
return check_to_hide_add_link();
});
return check_to_hide_add_link();
});