0

Middleman と Snipcart を使用して、e コマース プロジェクトを開発しています。複数の通貨を使用する必要がありdata-item-priceます{"usd": 20, "eur": 25}。購入ボタンに付けるデータセットは他にもあるので、ヘルパーを作成することにしました。

このヘルパーは私が望むものを正確に返しますが、data-item-price は二重引用符の間であり、単一引用符の間ではありません。現時点では、コードは asdata-item-price="{"usd":20,"eur":22}"と not as として理解されていますdata-item-price='{"usd": 20, "eur": 22}'

これで変身<button data-item-price="{"usd":20,"eur":22}">Buy</button>する必要があり<button data-item-price='{"usd":20,"eur":22}'>Buy</button>ます。

スニップカート (購入) ボタン ヘルパーは次のとおりです。

def snipcart_button (p, text)
  args = {
    "class" => "snipcart-add-item",
    "data-item-id" => p.id,
    "data-item-price" => p.price.to_json,
    "data-item-name" => p[locale].name,
    "data-item-max-quantity" => p.max_quantity,
    "data-item-url" => snipcart_product_url(p),
    "data-item-image" => p.image
  }

  content_tag :button, args do
    text
  end
end
4

2 に答える 2