當在1.8,我不能直接使用公認的答案,但它幫我找到如下:
def stylesheet_include(*sources)
if /^3\.[1-2]/ =~ Rails.version && sources.last.is_a?(Hash)
sources.last.delete :cache
end
stylesheet_link_tag *sources
end
原來的問題
上修改stylesheet_link_tag輔助工作根據rails版本正確傳遞內容,因爲這個地圖可能會作爲Rails 3.1.x中的引擎加載。這裏是我的代碼,到目前爲止,我想要做什麼:
def stylesheet_include(*sources)
options = sources.extract_options!.stringify_keys
if /^3\.[1-2]/ =~ Rails.version
options.delete "cache"
end
stylesheet_link_tag *sources, options
end
的問題是,我無法通過第二個參數,當我打電話*可變來源。我不能僅僅通過sources, options
,因爲link_tag方法需要幾個參數,而不是數組。如果它收到一個數組,那麼你會得到諸如路徑:css/reset/css/main.css
任何人有我如何能得到這個工作的想法。更糟糕的情況下,我可以不通過選項,但我寧願避免這種情況。
不幸的是,我們運行稀土元素1.8.7,所以這是一個不行:( – agmcleod
不幸的是,我認爲我最後拋棄的解決方案是最好的選擇 - 檢查splat數組的最後一個成員是哈希,如果是,假設它的選項哈希值。 – Veraticus
嗯,你給我的主意,試圖剛剛修改源數組中的哈希值,而不是修改它。瞧!(我把我的解決方案在我的答案,讓我可以接受你的)。 – agmcleod