Ruby on rails Can';渲染JS时不传递多个局部变量

Ruby on rails Can';渲染JS时不传递多个局部变量,ruby-on-rails,ajax,post,locals,Ruby On Rails,Ajax,Post,Locals,我尝试使用以下代码(通过远程AJAX调用)呈现javascript文件: respond_to do |format| format.js { render "like", :locals => {:media_id => media_id, :like_type => like_type}} end 该文件名为“like.js.erb”,我知道它会工作,因为当我在该文件中只添加一个标准javascript警报时,它工作得非常好。 文件(如.j

我尝试使用以下代码(通过远程AJAX调用)呈现javascript文件:

respond_to do |format|
                format.js { render "like", :locals => {:media_id => media_id, :like_type => like_type}}
end
该文件名为“like.js.erb”,我知道它会工作,因为当我在该文件中只添加一个标准javascript警报时,它工作得非常好。 文件(如.js.erb)如下所示:

<% if like_type == "l" %>
    alert("liking as <%= like_type %> for media_id <%= media_id %>");
    $('like_<%= media_id %>').update("liked");
<% elsif like_type == "u" %>
    alert("unliking as <%= like_type %> for media_id <%= media_id %>");
    $('like_<%= media_id %>').update("unliked");
<% end %>

警惕(“喜欢媒体标识”);
$('like')。更新(“like”);
警报(“与媒体id不匹配”);
$('likeú').update(“unlike”);
当文件包含上述代码时,POST操作将正确完成,但不会返回任何内容。似乎它不喜欢多个本地人被传递


有什么想法吗?谢谢

如果使用
:locals
选项,则需要提供
:partial
键作为参数

respond_to do |format|
                format.js { render :partial => "like", :locals => {:media_id => media_id, :like_type => like_type}}
end
或:


你能解释一下js.erb文件中提到的哪些代码没有执行。谢谢你的输入。我应该如何引用like.js.erb文件中的变量?喜欢还是喜欢?我尝试了这两种方法,但出于某种原因,这两种方法都返回空值。有什么想法吗?非常感谢!只是(除非你定义@media\u id=something)。如果它们返回空值,那是因为它们为零。like_type也是空白的吗?是的,两个都是空白的,尽管我确信我正在传递数据。。。我回家后会发布更多信息,希望你能看一看?非常感谢!
respond_to do |format|
                format.js { render "like", :media_id => media_id, :like_type => like_type}
end