2

在我的 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"}

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

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

4

2 回答 2

3

您需要更改<h1>@submission.title</h1><h1><%= @submission.title %></h1>您的部分。

于 2013-09-06T05:37:48.523 回答
1

如果您要使用实例变量,则没有理由将其传递到本地哈希中。

所以这一行:

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

可能只是:

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

如果你想使用本地人,你的部分需要如下:

<h1><%= submission.title %></h1>
于 2013-09-06T17:13:00.373 回答