我有兩個視圖提交了類似的控制器創建操作,允許用戶「跟蹤」產品。點擊「Track」按鈕後,每個視圖通過remote:true屬性提交一個AJAX請求,javascript響應應該重新呈現調用它的相應部分。我如何向我的create.js.haml腳本指出哪個視圖稱爲動作,然後相應地作出響應?指示到軌道控制器哪個視圖稱爲動作
代碼:
部分#1
- if current_user.present? && current_user.tracked_products.include?(@media)
%a.btn.btn-responsive.btn-thin.btn-color.red-bg{ href: main_app.price_tracker_path(current_user.price_trackers.where(product_id: @media.id ).first, _method: :delete), style: 'font-size: 1.2em', data: { method: :delete, remote: true } }
-# %i.fa.fa-eye-slash
Stop Tracking
- elsif current_user.present?
%a.btn.btn-responsive.btn-thin.btn-color.brand-background-color-lavender{ href: main_app.modal_new_price_trackers_path(media_id: @media.slug), style: 'font-size: 1.2em', data: { toggle: :modal, target: '#new_price_tracker' } }
-# %i.fa.fa-eye
Track It
- else
%a.btn.btn-responsive.btn-thin.btn-color.brand-background-color-lavender{ href: '#', style: 'font-size: 1.2em', data: { toggle: :modal, target: '#login_modal' } }
-# %i.fa.fa-eye
Track It
部分#2
- if (tracker = current_user.price_trackers.active.where(product: product).first).present?
%a.btn-responsive.brand-color-white{ href: main_app.price_tracker_path(tracker, _method: :delete), data: { method: :delete, remote: true} }
%i.fa.fa-check-circle
Track
- else
%a.btn-responsive.brand-color-white{ href: main_app.modal_new_price_trackers_path(media_id: product.slug), data: { toggle: :modal, target: '#new_price_tracker' } }
Track
create.js.haml:
if (//some indicator here) {
$('#track-product-'+#{@product.id}).html("#{j render(partial: 'products/track_item_from_card', locals: {product: @product})}");
else {
$('#track-item-button').html("#{j render(partial: 'products/track_item')}"); }
}
$('#new_price_tracker').attr("aria-hidden", "true");
$('#new_price_tracker').attr("style", "display: none;");
好像我需要的東西就像一個hidden_field_tag,但對於一個鏈接,而不是一個表格 –