我最近下载并安装了Devise for Rails 4.我在模型“actor”上使用它;它有一个名为“employee”的子集模型
对于班级“演员”
class Actor < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
include UUIDHelper
has_one :access, autosave: true
has_one :employee, autosave: true
has_many :contact_detail, autosave: true
has_many :file_set
has_many :link_set
mount_uploader :logo, AvatarUploader
validates :name, uniqueness: true
validates_presence_of :name
validates_length_of :description, maximum: 256
def actor_name
actor.name
end
validates :logo,
:file_size => {
:maximum => 25.megabytes.to_i
}
end
班级“员工”
class Employee < ActiveRecord::Base
include UUIDHelper
belongs_to :actor
has_one :status
has_many :restdays
has_one :regular_work_period
validates_presence_of :actor
end
我以前对这个观点有这种关系:
<td><%= employee.actor.name %></td>
现在它会发出错误:
nil的未定义方法`name':NilClass
我做错了什么? Devise做了什么吗?
答案 0 :(得分:2)
该错误表明此员工对象没有演员。 employee.actor
输出无。
只需检查您的员工对象是否已正确加载。这不是一个设计问题。