2012-04-28 13 views
0

私は私の意見の一つに以下のコードで問題が生じています:未定義のメソッド `Eメール:NilClass

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> 

管理コントローラー:

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

これは、エラーを生成します

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'はどこで定義されていますか? –

+0

私はそうじゃない。私は管理者ビューで電子メールのリストを表示しようとしています。管理者は現在、静的なページです。どのように定義すればよいですか? – maxm

+0

あなたは '@ emails'を定義していますので、' @ admin.emails'の代わりにそれを使わないのはなぜですか? –

答えて

1

あなたのインデックスメソッドは:) ... AdminController内

ではありませんそして、それは@emailsではなく@adminを定義します。

+0

気づいたこともあります。 –

+0

* facepalm *ありがとうございます。 – maxm

+0

@maxm:この回答を受け入れることができるように、私はマージしました(http://meta.stackexchange。 com/questions/5234/how-does-accept-an-answer-work) –

関連する問題