Rails 5 - 国家 gem - 旗帜
Rails 5 - Countries gem - flags
我正在尝试弄清楚如何在我的 Rails 5 应用程序中使用国家 gem,以便我可以在我的视图中显示旗帜表情符号。
在我的 gem 文件中,我有:
gem 'countries', :require => 'countries/global'
gem 'country_select'
我有一个名为地址的模型。它有一个名为 :country
的属性
在我的 address.rb 中,我正在尝试复制 gem 说明。使用标志的说明说:
Country Code in Emoji
c = Country['MY']
Country.emoji_flag # => ""
这些说明对我来说没有任何意义。什么是 "c"?为什么第 2 行不使用 "c"?为什么在上面的示例中 "Country" 是一个 class 名称,它是一个属性?我需要做些什么来将地址 table 中的国家/地区属性转换为 gem 可以读取以确定显示哪个标志的内容吗?
None 这些问题似乎在任何地方都有答案。我认为这是假设每个人(除了我)似乎都可以凭直觉理解的事情的另一个例子。他们是我的障碍。
在我的地址模型中,我有:
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 这表明某处有一个示例应用程序来展示如何应用自述文件中的说明 - 尽管它似乎不再存在。
正如 gem docs 中所述,为了使用像
这样的语法
c = Country['US']
您应该首先将此添加到 Gemfile:
gem 'countries', :require => 'countries/global'
在控制台中测试:
irb(main):001:0> require "countries/global"
=> true
irb(main):002:0> country = Country.new('US')
=> #<Country:0x000000050dc4d8 @country_data_or_code="US" ... >
irb(main):003:0> country.emoji_flag
=> ""
(我真的不知道为什么相同的文档建议语法 Country.emoji_flag
)。
要使用这些标志,我需要将 gem 更新到版本 2.5 并且国家-select gem 至少需要 v3
我正在尝试弄清楚如何在我的 Rails 5 应用程序中使用国家 gem,以便我可以在我的视图中显示旗帜表情符号。
在我的 gem 文件中,我有:
gem 'countries', :require => 'countries/global'
gem 'country_select'
我有一个名为地址的模型。它有一个名为 :country
的属性在我的 address.rb 中,我正在尝试复制 gem 说明。使用标志的说明说:
Country Code in Emoji
c = Country['MY']
Country.emoji_flag # => ""
这些说明对我来说没有任何意义。什么是 "c"?为什么第 2 行不使用 "c"?为什么在上面的示例中 "Country" 是一个 class 名称,它是一个属性?我需要做些什么来将地址 table 中的国家/地区属性转换为 gem 可以读取以确定显示哪个标志的内容吗?
None 这些问题似乎在任何地方都有答案。我认为这是假设每个人(除了我)似乎都可以凭直觉理解的事情的另一个例子。他们是我的障碍。
在我的地址模型中,我有:
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 这表明某处有一个示例应用程序来展示如何应用自述文件中的说明 - 尽管它似乎不再存在。
正如 gem docs 中所述,为了使用像
这样的语法c = Country['US']
您应该首先将此添加到 Gemfile:
gem 'countries', :require => 'countries/global'
在控制台中测试:
irb(main):001:0> require "countries/global"
=> true
irb(main):002:0> country = Country.new('US')
=> #<Country:0x000000050dc4d8 @country_data_or_code="US" ... >
irb(main):003:0> country.emoji_flag
=> ""
(我真的不知道为什么相同的文档建议语法 Country.emoji_flag
)。
要使用这些标志,我需要将 gem 更新到版本 2.5 并且国家-select gem 至少需要 v3