问题标签 [draper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1440 浏览

ruby-on-rails - 带有引导分页的 Draper - 未定义的方法“total_pages”

我正在使用 Draper 来装饰我的视图并从中移出一些逻辑,但我正在努力解决这个问题 - 如何使用 Bootstrap Pagination ( will_paginate) 设置 Draper?

默认情况下,我有这个:

从 Draper 文档中,我尝试添加以下内容:

但是在视图中调用分页时它仍然返回错误。我的控制器像这样定义装饰和分页:

而我的观点:

更新:

0 投票
0 回答
314 浏览

ruby-on-rails - draper 装饰器从原始模型 Rails 更改了“模型”属性

我正在实现 draper 装饰器,下面是代码。

.decorate在我添加方法之前一切正常,

在我添加.decorate方法之前,@model 属性是它应该是的,但是在我添加方法之后,puts 输出变为:#<Machine:0x007fd7e7813500>

发生了什么事?

0 投票
1 回答
907 浏览

ruby-on-rails - Ruby on Rails 中的手工装饰器。当 Drapper 导致的问题多于解决的问题时

我在我的 Rails 项目中使用 Draper gem 来获取装饰器模式功能。我认为 gem 将通过分离模型逻辑和视图逻辑来帮助提高我的工作效率。但是整个工作流程变得可怕。我应该始终将 .decorate 添加到每个控制器中的模型中。我的装饰器类是相互之间的委托全网。此外,当我开始使用 ActiveModel 序列化器时,我发现序列化器无法与我的装饰器一起使用。

我不喜欢这种方法并决定不使用单独的装饰器类,而是为每个模型提供装饰器模块。可以吗?这个解决方案可能会出现什么问题?

首先,它非常简单。我解决了下一个问题:

  1. 我不需要使用装饰继承的模型类。我只是为现有模型类提供装饰器方法。

  2. ActiveSerializer 现在可以使用装饰器方法。

但我觉得这个解决方案有问题。请给我一些批评!

0 投票
1 回答
136 浏览

ruby-on-rails - 带有 Ajax/JS 的 Rails draper gem

我正在使用 draper 并想在视图中使用其中一个装饰器。

使用 HTML 一切正常,但装饰器在 Ajax 版本中不起作用 - 我收到未定义的方法错误。

在评论装饰器中:

委托全部

鉴于:

我正在使用曝光,所以我不需要视图中的实例变量。

0 投票
1 回答
451 浏览

ruby-on-rails - 如何在 draper 中用另一个名字装饰一个物体?

这是问题

我有一个事件模型和一个用户模型。

一个事件有一个用户类的创建者。我在事件模型中使用了这一行来关联它:

所以我可以通过这一行访问创建者:

我的用户装饰器有这一行:

所以我可以装饰一个用户对象并访问 user.full_name

但我需要装饰一个事件,并使用“decorates_association”来装饰关联的用户。所以我需要调用这条线:

我试过这个:

但它会抛出“未定义的方法‘full_name’”错误。

我怎样才能防止这个错误?

谢谢!

0 投票
1 回答
491 浏览

activeadmin - ActiveAdmin 不装饰显示视图

我在我的 Rails 项目中使用 ActiveAdmin。我使用 Draper 作为装饰器,但我不明白为什么不装饰显示视图。根据文档,它应该可以decorate_with MyDecorator在我的 ActiveAdmin 资源中添加。

这是我的代码:

有人知道我的代码有什么问题吗?

0 投票
1 回答
321 浏览

ruby-on-rails - 视图测试中装饰器上的助手的 Rspec 问题

我的一个 rspec 测试失败,因为我无法在渲染视图的装饰器上使用辅助方法,而视图在正常运行服务器时完美运行,这是错误

以下方法是在从渲染视图调用的装饰器方法中调用的简单布尔检查:

和辅助方法:

我可以将辅助模块导入装饰器,但是控制器名称的错误更改未定义,所以我想我的问题分为两部分:

一,当通过 Rspec 从渲染视图调用装饰器时,如何让辅助方法工作,二,如何设置 controller_name 以在 Rspec 测试中工作。

0 投票
1 回答
54 浏览

ruby-on-rails-4 - Rails 4,Draper:经过身份验证的用户和视图

这种视图模式似乎没有分离关注点。

我在我的应用程序中包装了几个视图,逻辑要求用户登录,而是想分离关注点并将 <% if user_signed_in? %> 它所属的逻辑......这对我来说似乎是一个装饰器(因此是 Draper 标签)。

这里的最佳做法是什么?

0 投票
0 回答
969 浏览

ruby-on-rails - 当我想从另一个控制器调用装饰方法时如何调用它?

在用户的主页中,我想显示用户的phrases.

但这失败了Could not infer a decorator。我理解错误的发生是因为只有在适当的控制器中我才能使用该decorate方法。我读过这篇文章,但我可能会误解它。

所以如果我想decorate在这种情况下使用方法,有什么好的方法来解决它?

0 投票
1 回答
223 浏览

ruby-on-rails - 如何在装饰器中避免过多的`h.concat`

h.concat在这样的装饰器类中使用了很多:

首先,我觉得它太多了h.concat。其次,我不喜欢paren do ~ endblock。

有没有更好的方法来编写这些代码?