我正试图弄清楚如何在我的Rails 5应用程序中使用countries gem,以便我可以在我的视图中显示一个标志表情符号。
在我的gemfile中,我有:
Vector3 origin = Head.transform.position + GvrController.ArmModel.wristPosition;
Vector3 rayDirection = GvrController.ArmModel.pointerRotation * Vector3.forward;
我有一个名为地址的模型。它有一个名为:country
的属性在我的address.rb中,我正在尝试复制gem指令。使用标志的说明如下:
gem 'countries', :require => 'countries/global'
gem 'country_select'
说明对我没有任何意义。什么是“c”?为什么第二行不使用“c”?为什么“Country”在上面的例子中是一个类名,它是一个属性?我是否需要做一些事情来将我的地址表中的country属性转换为gem可以读取的内容以确定要呈现的标志?
这些问题似乎都没有在任何地方得到解答。我认为这是假设每个人(除了我)似乎直觉地理解的事物的另一个例子。它们对我来说是个障碍。
在我的地址模型中,我有:
Country Code in Emoji
c = Country['MY']
Country.emoji_flag # => ""
第一种方法很好用。它显示正确的国家/地区名称。
第二种方法是我能够得到一面旗帜。在我的地址视图中,我有:
def country_name
country = self.country
ISO3166::Country[country]
end
def country_emoji
country.emoji_flag
end
这不起作用。它会产生一个错误:
<%= Address.first.country_emoji %>
AU是相关国家/地区的正确代码 - 所以它必须努力找出它应该寻找的国家/地区。
如果我尝试将第二种方法(以便使用第一种方法)更改为:
undefined method `emoji_flag' for "AU":String
我收到错误消息:
def country_emoji
country_name.emoji_flag
end
有人能弄清楚如何使用countries gem来显示标志吗?
我看到this post表明有一个示例应用程序在某处显示如何应用自述文件中的说明 - 虽然这似乎不再存在。
答案 0 :(得分:0)
正如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
)。
答案 1 :(得分:0)
要使用标志,我需要将gem更新为2.5版,而country-select gem需要至少为v3