2012-04-28 21 views
0

我有在我的觀點一個與下面的代碼的問題:未定義的方法`電子郵件的零:NilClass

<% if [email protected]? %> 
<% @admin.emails.each do |email| %> 
    <tr> 
    <td><%= email.email %></td> 
    </tr> 
<% end %> 
<% end %> 

這將產生一個錯誤:

undefined method `emails' for nil:NilClass 
Extracted source (around line #1): 
1: <% @admin.emails.each do |email| %> 
2: <tr> 
3:  <td><%= email.email %></td> 
4: </tr> 

管理控制器:

class AdminController < ApplicationController 
end 
def index 
     @emails = Email.all 
     respond_to do |format| 
     format.html # index.html.erb 
     format.xml { render :xml => @emails } 
    end 
end 

電子郵件型號:

class Email < ActiveRecord::Base 
    attr_accessible :email 
    belongs_to :admin 
    email_regex = /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i 

    validates :email, :presence => true, 
        :length  => { :maximum => 250 }, 
        :format  => { :with => email_regex }, 
        :uniqueness => { :case_sensitive => false } 

end 

聯繫型號:

class Admin < ActiveRecord::Base 
    has_many :emails 
end 

任何想法可能是錯誤的?

+0

你在哪裏定義'@ admin'? – 2012-04-28 04:00:12

+0

廢話我不是。我試圖在管理員視圖中顯示電子郵件列表。管理員目前只是一個靜態頁面。我應該如何定義? – maxm 2012-04-28 04:05:04

+0

您正在定義'@ emails',爲什麼不使用'@ admin.emails'來代替'@ admin.emails'? – 2012-04-28 04:16:02

回答

1

您的索引方法不是AdminController內... :)

,它定義@emails,而不是@admin

+0

注意到了:) – 2012-04-28 04:31:37

+0

* facepalm *是的,謝謝 – maxm 2012-04-28 14:45:42

+0

@maxm:我合併在我的評論,所以你可以接受這個答案(http://meta.stackexchange。 COM /問題/ 5234 /如何-不接受-的回答工作) – 2012-04-28 18:22:23

相關問題