0

我正在尝试使用 Cocoon gem 将用户添加到资产。唯一的问题是我需要设置它以根据资产的类型限制可应用于资产的用户关联的数量(硬件/软件,硬件为 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 functionif $("#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();
});
4

1 回答 1

0

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

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

于 2014-11-04T19:28:08.843 回答