В моем приложении у меня есть модальный со следующим кодом:Изменить масштаб .each петли с раскрывающимся баром (Rails 3.2, JQuery)
.modal-body
.row
.col-sm-4
.btn-group-vertical#gear-buttons-list
- Gear.all.each do |gear|
.btn.btn-large.btn-default.gear-button{"data-id" => gear.id} #{gear.name} ($#{gear.charge})
Я делаю список кнопок, которые имеют имя за сборку части Gear для пользователя. Однако в другом месте на странице есть раскрывающаяся панель, которая позволяет пользователю выбирать категорию. В моем приложении, категория has_many Gears, и я хотел бы модальный, чтобы отобразить только Gears, связанные с категорией, которая была выбрана, например, следующие области действия определены в Gear.rb:
scope :moving, -> { where(category_id: 1) }
ли есть прямой способ закодировать цикл .each в модальном режиме, чтобы он был динамически изменен в зависимости от выбранной категории?
Это то, что я пытался в jobs.js
(после изменения его jobs.js.erb
):
if($('#job_category_id').length > 0) {
$('#job_category_id').change(function() {
var categoryID = $(this).val();
var categoryName = _categories[categoryID].name;
$("#gear-buttons-list").html(""); // clear default buttons
$("#gear-buttons-list") // append new buttons
.append("<% Gear." + categoryName + ".each do |gear| %><div class='btn btn-large btn-default gear-button' "data-id" => gear.id><%= #{gear.name} %></div><% end %>");
});
Это не работает, по-видимому, из-за того, как я пытаюсь сделать конкатенацию во встроенном Рубине (получение syntax error, unexpected tSTRING_BEG
ошибка). Может ли кто-нибудь, возможно, указать мне в правильном направлении?
Что такое «очевидно» отличается для каждого разработчика, так как все мы имеем различные количества знаний и опыта. Во всяком случае, оказывается, я могу использовать Ajax, чтобы избежать необходимости обновлять страницу каждый раз, когда категория изменяется (что, вероятно, «очевидно» для многих людей, кроме нас!;)). – sixty4bit