首页 > 解决方案 > 如何在控制器上的 format.js 之后使用实例变量或参数 - Rails

问题描述

我是 Rails 和编码方面的新手:

def startoffers
  id = params[:id]
  @id = params[:id]
  @product = Product.find(id)
  if @product.present?
    respond_to do |format|
      format.js {
        render "search/startoffers"
      }
    end
  end
end

因此,这会将您发送到一个 JS,该 JS 将隐藏/取消隐藏部分 html,并且还将拥有它;那里有自己的 JS。我的问题是我似乎无法发送要在那里使用的参数或实例变量:

$("#startoffers").html("<%= escape_javascript(render partial: 'search/startoffers')%>").show();
$("#close-offer").on("click",function(){
  $("#startoffers").hide();  
});
$("#oneclick").on("click",function(id){
  var product_id = id;
  window.location.href = "/offers/chat/" + product_id;
});

部分的:

</div class="btn-success"> <a id="oneclick" data-id="<%= @product.id %>">Click Here</a> </div>

我似乎无法正确使用 id 。重定向时,我被重定向到:

http://localhost:3000/offers/chat/[object%20Object]

标签: javascriptruby-on-railsruby

解决方案


js.erb这是在视图模板中使用实例变量的示例

alert("<%= @product.id %>");

它将打印警告框中id的。@product


推荐阅读