2012-04-28 56 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

相关问题