2012-07-22 66 views
1

我是新來紅寶石軌道上。在軌道上的紅寶石渲染deosn't找到文件

在視圖/事件我有「_form.html.erb」,這是「new.html.erb」渲染這段代碼:

<%= render "form" %> 

現在我想渲染「_form.html.erb 「位於同一文件夾(views/events)中的」index.html.erb「中。 但我得到錯誤「缺少模板」。

我想我有一些事情添加到控制器,請幫我渲染視圖其他頁面的形式...

+0

這絕對*應該*工作。我們是否有關於錯誤信息的更多細節?它是否在索引頁面中完全相同,也是<%= render「形式」%>'? – Matchu 2012-07-22 04:09:21

+0

它告訴它試圖找到部分的路徑嗎? – 2012-07-22 10:10:24

+0

這是我的錯誤 ActionView :: Template :: Error(未定義的方法錯誤爲零:NilClass): – 2012-07-24 21:38:42

回答

0

你「通常」不會在索引操作中呈現表單。大多數表單部分在語義上設置爲期望@my_resource,但是如果你在做任何事情,那麼在索引操作期間你將不會有實例變量。有很多方法可以做到這一點,但這可能是最快的。

,你可能會有一些集合(讓你使用本本裝)索引中的作用:

#views/books/index.html.erb 
<% @books.each do |book| %> 
    ... 
    <%= render "form" %> 
    ... 
<% end %> 

您可以只設置一個實例變量之前某處呈現形式:

#views/books/index.html.erb 
<% @books.each do |book| %> 
    <% @book = book %> 
    ... 
    <%= render "form" %> 
    ... 
<% end %> 

做到這一點的另一種方式是通過傳遞一些當地人的部分。您必須將_form中的所有引用都改爲使用本地變量。然後你可以這樣稱呼渲染:

<%= render :partial => "form", :locals => {:book => book } %> 
0

您可以嘗試

<%= render "events/form" %> 

我以前和這個有這個問題解決

+0

謝謝,但它沒有奏效。 – 2012-07-23 23:00:46

+0

對不起,您是對的。請檢查「/ events/form」而不是「events/form」,並告訴我是否有效。 – 2012-07-24 21:35:20

+0

再次感謝enrique ...但仍ActionView ::模板::錯誤(未定義的方法錯誤爲零:NilClass): – 2012-07-24 21:39:33