Ruby on rails 未定义的方法`电子邮件';零级:零级
在我的一个观点中,我对以下代码有疑问:Ruby on rails 未定义的方法`电子邮件';零级:零级,ruby-on-rails,Ruby On Rails,在我的一个观点中,我对以下代码有疑问: <% if !@admin.emails.nil? %> <% @admin.emails.each do |email| %> <tr> <td><%= email.email %></td> </tr> <% end %> <% end %> 这会产生一个错误: undefined method `emails' for n
<% 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>
nil:NilClass的未定义方法“emails”
提取的源(第1行附近):
1:
2:
三:
4:
管理员控制器:
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 AdminController@emails}
结束
结束
电子邮件模式:
class Email < ActiveRecord::Base
attr_accessible :email
belongs_to :admin
email_regex = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :email, :presence => true,
:length => { :maximum => 250 },
:format => { :with => email_regex },
:uniqueness => { :case_sensitive => false }
end
class电子邮件true,
:length=>{:max=>250},
:format=>{:with=>email_regex},
:唯一性=>{:区分大小写=>false}
结束
管理模式:
class Admin < ActiveRecord::Base
has_many :emails
end
class Admin
知道有什么问题吗?您的索引方法不在AdminController中…:)
它定义的是
@email
,而不是@admin
你在哪里定义@admin
?我不是。我试图在管理员视图中显示电子邮件列表。管理员目前只是一个静态页面。我应该如何定义?你正在定义@emails
,为什么不使用它来代替@admin.emails
?是的,再加上蔡斯的评论,这很有效,thanks@maxm:我合并了我的评论,所以你可以接受这个答案()