设计模型不允许关联

时间:2015-10-28 12:19:19

标签: ruby-on-rails ruby devise

我最近下载并安装了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做了什么吗?

1 个答案:

答案 0 :(得分:2)

该错误表明此员工对象没有演员。 employee.actor输出无。

只需检查您的员工对象是否已正确加载。这不是一个设计问题。