簡體   English   中英

無法在 rails helper 中為 div 標簽動態添加 id

[英]Can't dynamically add an id to div tag in rails helper

我有一個非常奇怪的問題。 這是我的觀點:

<h1>All Deals</h1>

  <%= sanitize print_grouped_deals(@deals) %>

這是我的 Deals_helper.rb

  def print_grouped_deals(grouped_deals_by_date)
    grouped_deals_by_date.map do |(date, deals)|
      %(<div id='#{date.to_s}-deals'>
        <h3>#{brief_time date}</h3>
          #{deal_paragraphs_for_group(deals)}</div>)
    end.join
  end

  def deal_paragraphs_for_group(deals)
    deals.map do |deal|
      %(<p>#{"<span class='warning'>POSSIBLY EXPIRED! -</span>" if deal.probably_expired?} #{link_to deal.headline, deal}</p>)
    end.join
  end

值得注意的是第二個代碼段中第一種方法的第三行。 我無法讓它為我的 div 標簽添加一個 id! 如果我將<div id='#{date.to_s}-deals'>更改為<div class='#{date.to_s}-deals'>它添加類沒問題,但如果我將其保留為id=那么它只創建一個沒有屬性的簡單<div>標簽。

以免我們認為這與生成多個帶有 id 的 div 有關(盡管 id 會有所不同),我還嘗試從助手生成一個簡單的<div id="thing" /> ,並且得到了相同的空 div結果是標簽。

跆拳道?

您必須將屬性的白名單傳遞給消毒助手https://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html#method-i-sanitize

允許 id 屬性

<%= sanitize print_grouped_deals, attributes: %w(id) %>

在整個應用程序中設置默認的允許標簽或屬性

# In config/application.rb
config.action_view.sanitized_allowed_tags = ['div', 'h3']
config.action_view.sanitized_allowed_attributes = ['id', 'class']

暫無
暫無

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

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