Я пытаюсь настроить пользователей на актив, и я сталкиваюсь с проблемой не уверен, как передать мой метод max_users
от asset.rb
к моему JS-коду. Я пытаюсь использовать метод max_users с драгоценным камнем Cocoon, чтобы кнопка «Добавить еще» исчезла, когда она достигла указанных max_users, разрешенных для этого актива.Javascript: Использование метода из модели в javascript-коде
Аппаратное обеспечение всегда будет установлено с max_user 1, тогда как у программного обеспечения никогда не будет значения max_user.
Max_users работает так, как должно, как и profile_type. JS работает так, как есть, но вместо этого всегда останавливается на 1, мне нужно, чтобы он регистрировал значение в max_users и основывал шоу/скрывал его.
Любая помощь будет очень признательна. И спасибо вам заранее.
JS:
$ ->
check_to_hide_add_link = ->
if $("#assets_users .nested-fields").length is 1
$("#assets_users .links a").hide()
else
$("#assets_users .links a").show()
$("#assets_users").bind "cocoon:after-insert", ->
check_to_hide_add_link()
$("#assets_users").bind "cocoon:after-remove", ->
check_to_hide_add_link()
check_to_hide_add_link()
Asset.show:
- if @asset.users.empty?
= simple_form_for([@asset_profile, @asset]) do |f|
= f.input :max_users, as: :hidden
#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_user_fields:
.nested-fields
= f.input :user_id, collection: @users.order(:last_name), :label => "User"
= link_to_remove_association "Remove", f
Asset.rb:
def max_users
if self.asset_profile.profile_type == "Hardware"
1
end
end
.
.
.
def length_of_users
if user_ids.count > max_users
errors.add(:users, "You can only add a maximum of #{max_users} users")
end
end