我使用的是link_to :remote => true
,它正在运行show_call.js.erb。
$("#display-call").html(<%= render :template => "contact_calls/new"%>)
但是,我收到以下错误:
ActionView::Template::Error (Missing partial contact_calls/new with {:locale=>[:en, :en], :handlers=>[:prawn_xxx, :prawn, :prawn_dsl, :haml, :erb, :rhtml, :builder, :rjs, :rxml], :formats=>[:js, :html]} in view paths
在app / views / contact_calls / new.html.erb中有一个视图---但我得到这个错误,说它想要“部分”?我只想渲染常规视图。
以下是hew.html.haml当前调用的内容:
1 - title "Sending call"
2 = render :partial => 'call', :call => @call
对于contact_call控制器我定义@call
我把它移到了__call partial:
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
答案 0 :(得分:1)
partials的文件名必须以下划线开头;你可以调用你的文件app/views/contacts_calls/_new.html.erb
,但更有可能想要将公共代码提炼成另一个部分,比如_call.html.erb
,并通过以下内容在两个模板中呈现它:
# new.html.erb
<%= render 'call', :call => @call %>
和
// show_call.js.erb
$("#display-call").html(<%= render 'call', :call => @call %>);
请注意,我假设要将名为call
的局部变量传递给您的部分。
您无法在其他视图中呈现顶级视图。如果要渲染另一个视图的某些部分,则必须将共享视图代码提取为部分视图并从顶层视图中呈现它。