Доступ к ассоциациям в направляющих

Вы можете легко использовать метод Javascript .Split(), чтобы разделить строки на слова, а затем найти первый символ. Например:

$('li').each(function(e) {
  //Get full string as words
  var words = $(this).text().split(" ");
  for (var i = 0; i < words.length; i++) {
    if (words[i].charAt(0) == "#") {
      words[i] = "<span class=hashtag >" + words[i] + "</span>";
    }

    if (words[i].charAt(0) == "@") {
      words[i] = "<span class=at >" + words[i] + "</span>";
    }
  }

  $(this).html(words.join(" "));

});
.at {
  color: red;
}

.hashtag {
  color: blue
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<li>I am a #hashtag</li>
<li>Hey @Bill, what's your #dog called?</li>
<li>Try to only process #letters, #numbers, and not #punctuation.</li>

Примечание: я сделал это, используя простой метод. Вам нужно будет обработать слова, чтобы обнаружить, что они являются буквами / цифрами и не содержат других символов.

5
задан mr_urf 26 January 2009 в 16:55
поделиться

2 ответа

Это получит Вас хеш объектов, описывающих ассоциации и другие вещи на данной модели Model.reflections. Вы хотите все значения в хеше, которые являются Reflection::AssociationReflection классы. Этот код должен получить Вас массив, который Вы хотите:

association_names = []
Model.reflections.each { |key, value| association_names << key if value.instance_of?(ActiveRecord::Reflection::AssociationReflection) }
6
ответ дан 14 December 2019 в 01:19
поделиться

Можно использовать один массив для определения ассоциаций и использования в проверках как:

BELONGS_TO_LIST = w%{ project task }
BELONGS_TO_LIST.each {|b| belongs_to b}
validates_inclusion_of :status_of, :in => BELONGS_TO_LIST
3
ответ дан 14 December 2019 в 01:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: