为什么我无法在Rails3中从javascript找到模板和渲染?

为什么我无法在Rails3中从javascript找到模板和渲染?,javascript,ruby-on-rails-3,render,Javascript,Ruby On Rails 3,Render,我正在使用链接\u to:remote=>true,它正在运行show\u call.js.erb $("#display-call").html(<%= render :template => "contact_calls/new"%>) app/views/contact\u calls/new.html.erb中有一个视图——但我收到这个错误,说它需要“部分”视图?我只想渲染常规视图 以下是当前在hew.html.haml中调用的内容: 1 - title "Send

我正在使用
链接\u to:remote=>true
,它正在运行show\u call.js.erb

$("#display-call").html(<%= render :template => "contact_calls/new"%>)
app/views/contact\u calls/new.html.erb中有一个视图——但我收到这个错误,说它需要“部分”视图?我只想渲染常规视图

以下是当前在hew.html.haml中调用的内容:

 1 - title "Sending call"
  2 = render :partial => 'call', :call => @call
对于联系人呼叫控制器,我定义@call

我把这个移到了H_呼叫部分:

 1 #main
  2   = render :partial => 'contacts/contactpartial'
  3   %p= link_to call.title, call_path(call)
  4   = render :partial => 'form'
  5   %p= link_to "Back to List", contact_calls_path

分部的文件名必须以下划线开头;您可以调用文件
app/views/contacts\u calls/\u new.html.erb
,但更可能的情况是,您希望将通用代码提取到另一部分,例如
\u call.html.erb
,并通过以下方式在两个模板中呈现它:

# new.html.erb
<%= render 'call', :call => @call %>
#new.html.erb
@呼叫%>

//show_call.js.erb
$(“#显示调用”).html(@call%>);
请注意,我假设要将名为
call
的局部变量传递给您的分部代码


不能从其他视图中渲染顶级视图。如果要渲染另一个视图的某些部分,则必须将共享视图代码提取为部分,并从两个顶级视图进行渲染。

同意。我还想补充一点,一般来说,命名从远程调用返回数据的部分是一个好主意,使用七个“restful”名称中的一个以外的名称——比如new、create、,等等。在这种情况下,可能会调用它
app/views/contacts\u calls/\u call.html.erb
.ahhh…所以我不能远程渲染另一个视图…这很有帮助…在Rails 2中…我能够做到…这不会使它不干燥,因为它与我直接使用的视图相同吗?部分更干燥。你应该将共享的代码片段提取成部分,这就是它们的用途。我明白了……但它与顶层视图相同……所以也许我应该让顶层视图调用_new来调用部分?嘿,是的,我明白了…所以我的js.erb也需要在渲染中传递值…好的,我尝试更改顶层视图以调用部分调用…但它没有接收局部变量。。。。?我发布了以前的新内容和我的新呼叫部分…谢谢!
# new.html.erb
<%= render 'call', :call => @call %>
// show_call.js.erb
$("#display-call").html(<%= render 'call', :call => @call %>);