我有一个包含多个链接的视图:
<% a.each do |q| %>
<%= link_to "stock it",
{ :action => "stock",
:qid => q.question_id,
:qur => q.question_answers_url,
:qti => q.title } ,
:remote => true %>
<div id="<%= "stock" + q.question_id.to_s %>"></div>
<% end %>
每个链接都会生成AJAX请求。这是一个控制器:
def stock
if(!Later.where(:question_id => params[:qid]).exists?)
later = Later.new(:question_id => params[:qid], :name => params[:qti], :url => params[:qur])
later.save
end
respond_to do |format|
format.js { render :layout=>false }
end
end
现在返回视图。每个链接都有一个'div',其唯一的id ='stock'。当用户按下链接时,我需要将文本添加到具有相应ID的特定div。
我有一个stock.js.erb文件:
$("#stock<number>").html("some text");
如何将div-id传递给stock.js.erb以及如何使用它?
答案 0 :(得分:1)
常用的是将object.id
添加到您的DOM ID中。你刚才所做的那样:
<div id="<%= "stock_#{q.question_id}" %>"></div>
然后在您的控制器中,您应该定义question_id
或您的确切question
:
def stock
if(!Later.where(:question_id => params[:qid]).exists?)
later = Later.new(:question_id => params[:qid], :name => params[:qti], :url => params[:qur])
later.save
end
@question_id = params[:qid]
end
现在它将与您的stock.js.erb
文件共享:
$("#stock_<%= @question_id %>").html("some text");