簡體   English   中英

將 HTML 放在 Rails 助手中

[英]Place HTML in a Rails Helper

所以我有一個 simple_form 的輸入,如下所示:

<%= f.input :preferred_locale, collection: languages_available, label: "Choose Language", selected: current_user.preferred_locale, include_blank: false %>

因此,這將創建一個包含項目中可用語言的下拉列表。 可用語言是這樣的數組,放置在 rails 助手中(extension.rb,僅 ruby,文件):

def languages_available
    [
      ["English", 'en'],
      ["Spanish", 'es'],
    ]
end

問題是要在顯示國旗的語言旁邊顯示一個圖標。 問題是,在助手中你不能寫 html。 沒問題,我知道 html_safe 的存在,所以在集合中我做了類似的事情:

<%= f.input :preferred_locale, collection: languages_available.map { |e| e.map(&:html_safe) }, label: "Choose Language", selected: current_user.preferred_locale,include_blank: false %>

所以這將每個 substring 標記為 html_Safe。 有了這個我什么都看不到,我正在嘗試一些簡單的東西,比如放入數組

def languages_available
    [
      ["<b>English</b>", 'en'],
      ["Spanish", 'es'],
    ]
end

事情是這樣的,因為我只看到“英語”而不是“< b>英語</ b>”作為純文本,但我沒有看到粗體字,所以我不知道出了什么問題。

編輯:謝謝你的回答,似乎在收集中,它生成一個 select 標簽,不可能使用 html 因為它只支持文本,我必須找到另一種方法來完成這個。

我不認為你可以在 Html 中做到這一點,選項不可定制,但也許你可以使用一個列表,並使用 css 和/或 js 定制做一個下拉,我知道有很多庫可以做到這一點.

這里有一個例子: https://www.w3schools.com/css/tryit.asp?filename=trycss_dropdown_button

另一件事可能是使用帶有標志的表情符號,我從未嘗試過,但也許您可以將其放入純文本並使用某些庫自動將其轉換為表情符號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM