Rails 5 - значки флагов с динамическим вводом страны

Я установил этот значок флага scss gem в своем приложении Rails 5.

https://github.com/eugenegarl/flag-icons-rails

Сейчас я пытаюсь выяснить, как я могу использовать его с моей моделью адресов, чтобы помощник получал название страны из таблицы адресов и использовал его для отображения правильного флага. Я не могу найти способ дать динамический ввод помощнику флага.

В readme для драгоценного камня есть инструкция, которую я не могу понять:

Do not add gem to assets section if you want to use flag_icon rails helper.

Какие активы? Я добавил драгоценный камень в gemfile, связал и затем добавил:

@import "flag-icon";

к моему application.scss - который является активом. Я попытался удалить эту строку импорта из application.scss на случай, если инструкция в readme означает не использовать эту строку, если вы хотите использовать помощник. Удаление этой строки не решило мою проблему (поэтому она вернулась).

У меня есть модель адреса, в которой есть атрибут страны.

a = Address.last.country
  Address Load (0.9ms)  SELECT  "addresses".* FROM "addresses" ORDER BY "addresses"."id" DESC LIMIT $1  [["LIMIT", 1]]
 => "AU" 

Я хочу иметь возможность использовать "страну" в помощнике значок флага, чтобы он отображал соответствующий флаг.

На мой взгляд, я попытался:

        <%= flag_icon(Address.last.country) %>

        <%= flag_icon(Address.last.country.to_sym) %>

Ни одна из этих попыток не работает. Они не выдают никаких ошибок, они просто не отображают карту.

Карты работают, потому что если я попробую:

<%= flag_icon(:au) %>

он печатает правильный флаг.

Как я могу дать помощнику динамический ввод страны?

1 ответ

Столкнулся с аналогичной проблемой.

я использую gem 'country_select',

Оказывается, символ был в CAPS, поэтому не работал.

Попробуйте изменить следующее:

<%= flag_icon(Address.last.country.to_sym) %>

Для того, чтобы:

<%= flag_icon(Address.last.country.downcase.to_sym) %>

(Обратите внимание на .downcase добавлено выше).

Другие вопросы по тегам