В хамле моего приложения Ruby on Rails я пытаюсь пройти через массив через AngularJS ng-repeat
и отображать только строки этого массива, которые содержатся в другом массиве.Я пытаюсь добиться этого с помощью функции include?
Ruby, чтобы узнать, есть ли каждая строка в моем другом массиве, но она возвращает false, даже если строка находится в моем другом массиве.
Вот мойкод для устранения этой проблемы (с комментарием в моем «реальном» коде):
%span.badge{"ng-repeat" => "competence_name in mymodel.get_competence_names track by $index"}
= "{{competence_name}}"
= current_user.get_competence_names
= current_user.get_competence_names.include?("{{competence_name}}")
-#- if current_user.get_competence_names.include?("{{competence_name}}")
-#= "{{ competence_name }}"
Этот код отображает:
Challenger ["Challenger", "Creative", "Innovative", "Results-oriented"] false
Обратите внимание, что в конце строки указывается?должен возвращать true
, а не false
, так как "Challenger" включен в массив.
Но если я заменю эту строку:
= current_user.get_competence_names.include?("{{competence_name}}")
На эту строку:
= current_user.get_competence_names.include?("Challenger")
Отображается true
вместо false
Так что я подумал, что это проблема типа и что "{{ competence_name }}"
не был интерпретирован как String
Руби.Поэтому я попытался заменить "{{ competence_name }}"
на String.new("{{ competence_name }}")
, но он по-прежнему возвращает false ...
Есть ли у вас какие-либо идеи об источнике проблемы?