nil:NilClass 的未定义方法 'email'



我的一个视图中的以下代码有问题:

<% if !@admin.emails.nil? %>
<% @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+-.]+@[a-zd-.]+.[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

知道可能出了什么问题吗?

您的索引方法不在 AdminController 中... :)

它定义了@emails而不是@admin

最新更新