使用Rails应用程序实现装饰器

时间:2017-02-19 22:24:59

标签: ruby-on-rails decorator

我正在尝试使用装饰器做一些非常简单的事情。我从来没有亲自设置一个装饰器,我正在花一些时间来学习它。基本上我正在尝试获取表的属性并围绕它构建一些视图逻辑。这是我的代码:

页面控制器:

  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中调用我的赋值方法。但是当我尝试渲染仪表板时,我收到了这个错误:

enter image description here

1 个答案:

答案 0 :(得分:1)

使用:

@dashboard = Dashboard.find(dasboard_id).decorate

编辑:

看起来你想要一个assignment装饰器而不是dashboard装饰器。 使用Draper生成一个新的,然后:

@assignments = current_account.assignments.all.decorate