Сравнение значения массива в цикле блоков усов - PullRequest
0 голосов
/ 20 сентября 2011

Итак, я пытаюсь отобразить выпадающий список из массива, используя Усы и Синатру.Код шаблона в настоящее время выглядит следующим образом:

<select id="phone_prefix" name="phone_prefix">
    {{#prefixes}}
        <option value="{{to_s}}" {{selected}}>{{to_s}}</option>
    {{/prefixes}}
</select>

Используя следующий метод в представлении, он отображает каждый элемент массива:

def prefixes
  ["03", "04", "06", "07", "09", "021", "022", "025", "027", "028", "029"]
end

Для значения {{selected}} вУсы шаблон, мне нужно сделать сравнение на элемент массива в настоящее время перебирается и значение строки запроса, поступающей через params[:phone_prefix], который, например, "09".Затем, когда есть совпадение, верните значение "selected" методу selected для перехода к усам.

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 21 сентября 2011

Rad!Спасибо!Это сработало.Я закончил со следующим методом для префиксов, и он прекрасно работает:

def prefixes
  prefix_list = [{:n => "03", :selected => false}, {:n => "04", :selected => false}, {:n => "06", :selected => false}, {:n => "07", :selected => false}, {:n => "09", :selected => false}, {:n => "021", :selected => false}, {:n => "022", :selected => false}, {:n => "025", :selected => false}, {:n => "027", :selected => false}, {:n => "028", :selected => false}, {:n => "029", :selected => false}]
  prefix_list.each do |i|
    if i[:n] == "09"
      i[:selected] = true
    end
  end
  prefix_list
end
0 голосов
/ 20 сентября 2011

Вставьте логику в свой Ruby и просто передавайте данные в Усы.Обновите свой метод prefixes, чтобы он возвращал массив хэшей:

def prefixes
  # figure out which one is selected by asking params...
  [ { :n => '03', :selected => false }, { :n => '04', :selected => true }, ... ]
end

, а затем что-то подобное в вашем шаблоне:

<select id="phone_prefix" name="phone_prefix">
    {{#prefixes}}
        <option value="{{n}}" {{#selected}}selected="selected"{{/selected}}>{{n}}</option>
    {{/prefixes}}
</select>

Я использовал усы только в JavaScript, поэтому яможет быть что-то упущено во вкусе Ruby, но что-то близкое к этому должно работать, вам просто нужно получить информацию из params в ваш prefixes метод.

Усы намеренно минималистичны и свободны от логики, даже на домашней странице так сказано :

Шаблоны без логики.

Так что вся ваша логика входит в ваш код, и вы просто устанавливаете кучупеременные и флаги для усов.Единственная логика, доступная в шаблоне, - это правда?и "могу ли я перебрать эту вещь?";что-нибудь более сложное, чем это, должно идти в коде, который готовит данные для Усов.

...