Rails 5 - 标志图标与动态国家输入

时间:2016-12-14 01:24:18

标签: ruby-on-rails css3 dynamic sass

我在我的Rails 5应用程序中安装了这个标志图标scss gem。

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

我现在正在尝试弄清楚如何将它与我的地址模型一起使用,以便帮助程序从Address表中获取国家/地区名称并使用它来显示正确的标志。我找不到给标志助手提供动态输入的方法。

宝石的自述文件有一条我无法理解的说明:

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

有什么资产?我将gem添加到gemfile中,捆绑然后添加:

@import "flag-icon";

到我的application.scss - 这是一项资产。我已经尝试从application.scss中删除该导入行,以防自述文件中的指令意味着如果要使用帮助程序则不使用该行。删除该行并没有解决我的问题(所以它回来了。)

我有一个地址模型,其中包含country属性。

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

我希望能够在旗帜图标助手中使用“country”,以便呈现相应的旗帜。

在我看来,我尝试过:

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

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

这些尝试都不起作用。它们不会产生任何错误,它们只是不渲染地图。

地图有效,因为如果我尝试:

<%= flag_icon(:au) %>

它打印正确的标志。

如何为帮助者提供动态国家/地区输入?

1 个答案:

答案 0 :(得分:0)

进入类似的问题。

我使用gem 'country_select'

原来,这个符号在CAPS中,所以没有工作。

尝试更改以下内容:

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

要:

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

(注意上面添加的.downcase。)