2012-09-25 51 views
5

這是我的代碼用於渲染的部分(被正確生成@parties收集,我已經測試):傳遞局部變量來局部內每個循環軌道3

 <% @parties.each do |party| %> 
      <div class="item"> 
       <%= render 'parties/party', :object => party %> 
      </div> 
     <% end %> 

而這是代碼在部分:

<%= party.name %> 

不過,我得到以下錯誤:

undefined method `name' for nil:NilClass 

我在我無計可施,有人請幫忙: - |

而且,這是控制器使含有部分(控制器的所謂default_controller)視圖中的代碼:

def index 
    @parties = Party.all 
end 

是它的任何後果,這是不是parties_controller?

回答

10

我已經試過類似下面,它的工作

<%= render :partial => 'party', :object => party %> 

,我可以訪問諸如party.name。局部變量以party這裏的部分名稱命名。

注:林假設你既諧音是parties_controller。所以這應該工作。

更新: 這裏是香港專業教育學院與試圖再次

class PostsController < ApplicationController 
    #... ... 
    def index 
     @posts = Post.all 
     @comments = Comment.all #<---- Loading comments from PostsController 
     #... ... 
    end 
end 

#views/posts/index.html.erb 

<% @comments.each do |comment| %> 
    <%= render :partial=>"comments/comment", :object=>comment %> 
<% end %> 

#views/comments/_comment.html.erb 

<%= comment.body %> 

而且其worki ng :)

+0

儘管鏈接http://apidock.com/rails/ActionController/Base/render已被棄用,但它提供了一些很好的渲染示例。 – Samiron

+0

使用部分的頁面不通過parties_controller呈現 - 爲什麼會出現這種問題? (正在使用的控制器的代碼仍然使用@parties = Party.all從數據庫中獲取所有參與方) – nicohvi

+0

Ive用另一個示例更新了我的帖子。這裏是我舉例說明的小型鐵軌項目。 ** HTTP://goo.gl/bB9Ky**。你可以下載,並可以看到在行動自己:) – Samiron