我正在尝试使用装饰器做一些非常简单的事情。我从来没有亲自设置一个装饰器,我正在花一些时间来学习它。基本上我正在尝试获取表的属性并围绕它构建一些视图逻辑。这是我的代码:
页面控制器:
def dashboard
@assignments = current_account.assignments.all.decorate
@invitation = Invitation.new
end
仪表板装饰:
class AssignmentDecorator < Draper::Decorator
def status
if finished
"Finished"
else
"Waiting"
end
end
end
查看表格:
<tr class="assignment-rows">
<td><%= link_to assignment.name, account_assignment_path(assignment) %></td>
<td><%= assignment.assigned_workers %></td>
<td><%= assignment.status %></td>
</tr>
正如你所看到的那样,我试图在td中调用我的赋值方法。但是当我尝试渲染仪表板时,我收到了这个错误:
答案 0 :(得分:1)
使用:
@dashboard = Dashboard.find(dasboard_id).decorate
编辑:
看起来你想要一个assignment
装饰器而不是dashboard
装饰器。
使用Draper生成一个新的,然后:
@assignments = current_account.assignments.all.decorate