所以我使用Ruby / jQuery / JavaScript混合将信息从我的索引/显示页面传递到Order页面。在我的索引/显示视图中,我有以下内容:
<%= link_to 'Get a Collectible', order_books_path(:id => book.id), class: "btn merch%>
然后在我的订单视图中,我有:
<div class="image-container <%= 'active' if books.id == params[:id].to_i%>" image-var="<%books.book_image%>">
<%= image_tag books.book_image, class: "book-image" %>
很好,所以如果点击订单页面,我会传递书籍ID,然后将该书标记为活动状态。要阅读并维护页面上的“活动”更改,我正在使用以下JS进行解析:
function getParameterByName(name, url) {
if (!url)
url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results)
return null;
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
然后在订单页面上更改以下jQuery:
var $link = $('.img-container1');
$('.img-group').on('click', '.img-container1', function() {
$link.removeClass('active');
$(this).addClass('active');
$('input[name="image"]').val(this.getAttribute('image-var')).change();
});
var type = getParameterByName('type');
var image = getParameterByName('image');
最后在jQuery中将转移从Show页面更改为Order页面:
$(function() {
$('div [button_type="' + type + '"]').addClass('btn wk-prd-btn pink');
$('div [image-var="' + image + '"]').addClass('active');
$('input[name="image"]').val(image).change();
});
所以这就是所有的代码。它运行得很好,除了我需要将image-var传递给HubSpot进行图像选择。我检查了页面,确定它没有通过image-var。所以我在这里做了一个改变:
<div class="image-container <%= 'active' if books.id == params[:id].to_i%>" image-var="<%books.book_image.to_s%>">
我在最后添加了.to_s,确定图像文本通过但没有大小写,最后它丢失了.jpg(正在使用)。
那么如何在我可以传递的视图之间维护/传递变量?
答案 0 :(得分:0)
如此愤怒。答案实际上是输出变量。所以
image-var="<%=books.book_image.to_s%>">