0
我想在資產上設置用戶,並且遇到了不確定如何將我的max_users
方法從asset.rb
傳遞給我的JS代碼的問題。我試圖在Cocoon gem中使用max_users方法,使其「添加另一個」按鈕在達到該資產允許的指定max_users時消失。Javascript:使用javascript代碼中的模型
硬件將始終設置max_user爲1,而軟件永遠不會有max_user值。
Max_users的工作原理與profile_type一樣。 JS按原樣運行,但不是始終停在1,而是需要在max_users中註冊該值,並將show/hide設置爲基於此值。
任何幫助將不勝感激。並預先感謝您。
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