Я пытаюсь понять, как использовать gem страны в моем приложении Rails 5, чтобы я мог отображать флаг emoji на мой взгляд.Rails 5 - Страны gem - flags
В моем Gemfile, у меня есть:
gem 'countries', :require => 'countries/global'
gem 'country_select'
У меня есть модель под названием адрес. У него есть атрибут, называемый: country
В моем address.rb Я пытаюсь скопировать инструкции по драгоценному камню. Инструкции по использованию флагов:
Country Code in Emoji
c = Country['MY']
Country.emoji_flag # => ""
Инструкции для меня не имеют никакого смысла. Что такое «c»? Почему во второй строке не используется «c»? Почему «Страна» - это имя класса, когда в приведенных выше примерах это атрибут? Нужно ли мне что-то сделать, чтобы преобразовать атрибут моей страны в мою адресную таблицу в то, что камень может прочитать, чтобы определить, какой флаг должен присутствовать?
Ни один из этих вопросов не встречается нигде. Я думаю, что это еще один пример того, что предполагается, что все (кроме меня) интуитивно понимают. Это дорожные блоки для меня.
В моей адресной модели, у меня есть:
def country_name
country = self.country
ISO3166::Country[country]
end
def country_emoji
country.emoji_flag
end
Первый метод отлично работает. Он отображает правильное название страны.
Второй метод - моя попытка получить флаг. На моем адресе я имею:
<%= Address.first.country_emoji %>
Это не работает. Это приводит к ошибке, которая говорит:
undefined method `emoji_flag' for "AU":String
AU является правильный код для соответствующей страны - поэтому он должен работать, чтобы выяснить, в какой стране следует искать.
Если я попробовать изменить второй метод (с тем, чтобы использовать первый метод) для:
def country_emoji
country_name.emoji_flag
end
Я получаю сообщение об ошибке, которая говорит:
undefined method `emoji_flag' for #<ISO3166::Country:0x007fe87145d7e0>
Может кто-нибудь выяснить, как использовать страны gem, чтобы отобразить флаг?
Я видел this post, в котором говорится, что есть пример приложения, где показано, как применять инструкции в readme, хотя это, похоже, больше не существует.
У меня есть драгоценный камень в Gemfile, как свидетельствуют документы (в том числе требуется) – Mel
В любом случае, когда я пытаюсь использовать ту же самую вещь в консоли, как я описываю в сообщении, я получаю ту же ошибку, что и в записи, которая является: a.country.emoji_flag NoMethodError: undefined method 'emoji_flag 'для" AU ": String – Mel
Как вы определяете" a.country "? Что это за класс (a.country.class)? Это должна быть страна, а не строка. –