Cocoon gem:如何限制关联数量

时间:2014-11-03 19:56:07

标签: ruby-on-rails ruby associations limit cocoon-gem

我正在尝试使用Cocoon gem将用户添加到资产中。唯一的问题是我需要设置它来限制可以根据资产类型应用于资产的用户关联数量(硬件/软件,硬件为1,软件赢得&t; t被定义)。目前我可以继续向资产添加用户关联。有没有办法限制关联数量?

感谢任何帮助。提前谢谢。

Asset.show:

- 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

再一次,非常感谢任何帮助。

编辑:链接到推荐的问题:Cocoon add association, how to limit number of associations

生成的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();
});

1 个答案:

答案 0 :(得分:0)

()上摆脱.length最终成为错误消息的解决方案。我将javascript转换为coffeescript只是一个问题。

以下是我打开的新问题的链接,以便进一步深入研究我的具体问题,万一有人也有同样的问题:Javascript: Using a method from model in javascript code