2015-11-23 163 views
4

我在使用装饰器时遇到问题。我以前从来没有用过,我一直在尝试使用一个关于我一直在分解一些电子邮件的事情。使用装饰器,(rails)无法推断ActiveRecord :: Base的装饰器

但是因为我以前从未使用过一个,所以即使使用我的装饰器做了非常简单的事情,我也遇到了麻烦,并且我认为它存在某种形式的安装问题。我知道,除了我的小功能(又名gemfile等)之外的所有内容都是最新的和正确的。

我得到的错误是简单地说,

无法推断的ActiveRecord :: Base的一个装饰。

现在我有一个几乎是空的控制器,但在它里面,我有这样保存的活动记录部分。

class Admin::ReceivedEmailsController < Admin::ApplicationController 

我的观点被标题,

_receive_email.html.haml 

所有我在我截至目前视图做的事情是这样:

%td= received_email.decorate 

我的装饰

class Admin::ReceivedEmailsDecorator < Admin::ApplicationDecorator 

def received_email 
if can? :update, @customer 
    received_email.content 
else 
    "You need to have the correct admin access to view the email" 
end 
end 

我觉得这必须是这样的基本的东西让我失踪,但我不确定它是什么。有人会知道我错过了什么吗?

回答

2

经过更多的研究后,逆向工程进一步修饰器和阅读更多文档。我了解到需要模型或助手才能正确使用装饰器。由于我的偏见,我没有一个特定的模型或帮手使用。