我想弄清楚如何在我的Rails 5應用程序中使用國家寶石,這樣我就可以在我的視圖中顯示標誌表情符號。Rails 5 - 國家寶石 - 旗幟
在我的Gemfile,我有:
gem 'countries', :require => 'countries/global'
gem 'country_select'
我有一個名爲地址模型。它有一個屬性叫:國家
在我的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>
任何人都可以找出如何使用國家寶石展示一面旗幟?
我看到了this post這表明有一個示例應用程序在某處顯示如何在自述文件中應用指令 - 儘管似乎不再存在。
我在Gemfile中寶石的文件顯示(包括要求) – Mel
無論如何,當我在控制檯中嘗試同樣的東西時,我在帖子中描述過,我得到了與我在帖子中列出的相同的錯誤:a.country.emoji_flag NoMethodError:未定義的方法'emoji_flag'for「 AU「:字符串 – Mel
你如何定義」a.country「?什麼是類(a.country.class)?它應該是國家,而不是字符串。 –