繁体   English   中英

通过AJAX传递Rails变量到局部?

[英]Pass Rails variable through AJAX to partial?

在我的Rails应用程序中,我向此调用传递了一个变量: $.get("/parent_submissions/", {submission: d.id}, null, "script"); ,并且我希望submission变量可以传递到通过控制器加载的部分代码中。 通过/ parent_submissions /路由的控制器操作是:

def parent
    @submission = Submission.find(params[:submission])
end

该操作将加载parent.js.erb,如下所示:

$("body").append( "<%=j render :partial => 'parent', :locals => {:submission => @submission } %>" );

_parent.html.erb看起来像这样:

<h1>@submission.title</h1>

我在控制台中检查了一下,当调用get请求时会发生什么,它看起来像这样:

Processing by SubmissionsController#parent as JS
Parameters: {"submission"=>"190", "_"=>"1378443591336"}

这意味着提交值不为null,并且正确地通过请求传递了正确的提交ID。 但是当部分渲染时,它看起来就像@submission.title

我认为控制器中有问题。 有任何想法吗?

您需要在部分中将<h1>@submission.title</h1>更改为<h1><%= @submission.title %></h1>

如果您打算使用实例变量,则没有理由在本地变量中传递它。

所以这行:

$("body").append( "<%=j render :partial => 'parent', :locals => {:submission => @submission } %>" );

可能是:

$("body").append( "<%=j render :partial => 'parent' %>" );

如果要使用本地人,则需要满足以下条件:

<h1><%= submission.title %></h1>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM