[英]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.