我想在div中呈现动作的内容(例如new_sub_batch)。
我试过
<div id="newBatch">
<%= render :template => 'new_sub_batch.html.erb' %>
</div>
但没有显示任何内容。
我甚至试过<%= render :action => 'new_sub_batch' %>
..但仍然没有。
有什么建议吗?
非常感谢
答案 0 :(得分:3)
你想要的是偏爱。将两个视图将使用的公共标记分解为单个文件,并在其名称前加下划线。然后调用render :partial => 'filename'
,其中filename
是不带下划线的部分名称。
在您的情况下,您从new_sub_batch.html.erb
中提取的代码可能会在_batch.html.erb
部分内,与您的其他sub_batch
视图位于同一目录中。您可以使用以下方式渲染此部分:
render :partial => 'batch'
在Rails3中,您只需使用render 'batch'
。
如果要将变量传递给partial,可以通过:locals
执行此操作。假设您想要传递@sub_batch
变量,您的调用将如下所示:
render :partial => 'batch', :locals => { :sub_batch => @sub_batch }
虽然这并不能严格回答您的问题,但我相信在ruby-on-rails
标记内解释 Rails Way 更为重要,而不是以错误的方式帮助您。< / p>
答案 1 :(得分:0)
尝试文件渲染:
<div id="newBatch">
<%= render :file => 'directory/new_sub_batch.html.erb' %>
</div>