问题标签 [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 回答
1007 浏览

ruby-on-rails - Rails 5 使用包含装饰关联的对象渲染 JSON

我的 Rails 5 应用程序有一个 Ride 模型和一个 Waypoint 模型,其中一个 Ride 有多个 Waypoints

我还有一个航点装饰器,它装饰了一些航点字段。

在我的 Rails 应用程序中,我想返回一个游乐设施列表和所有嵌套的航点。

效果很好。

但我想返回装饰的航点,所以我尝试的是:

但这给了我一个错误,说装饰不是航路点的函数。我正在使用 Drape Gem 进行装饰,它在应用程序的其他部分工作得很好。

0 投票
1 回答
710 浏览

ruby-on-rails - 在 Rails 5 和 Draper 中包含装饰的嵌套对象

我正在使用 Rails 5 和 Draper 来装饰模型。

我的模型是帖子和评论,并且有一个评论装饰器。

我想获取所有帖子并急切地加载装饰评论。

我的出发点是

但这当然不会返回修饰的评论。我必须修改什么才能获得呈现的评论?

0 投票
2 回答
531 浏览

ruby-on-rails-5 - 找不到生成器 'draper:install' rails 5

使用 rails 5 我添加了 gem

然后当我调用安装生成器时出现错误

我在这里做错什么了吗?

0 投票
1 回答
183 浏览

ruby-on-rails - 无法安装和使用“draper”gem

我在处理 draper gem 时遇到了一些问题。

  1. 安装 draper gem 'draper'

    /li>

这是成功的。

  1. 做过rails generate draper:install

    /li>

但我有一些错误

  1. 没关系,我做到了rails generate decorator Service

    /li>

这是成功的。

  1. services_decorator 中的方法

    /li>
  2. 从视图中调用此方法

    /li>

但这是错误的,

有人可以教我出了什么问题以及如何解决这个问题吗?rails版本是4.1.7,draper版本是2.1.0

0 投票
1 回答
520 浏览

ruby-on-rails - 存在未定义的方法吗?对于 Draper::CollectionDecorator

我正在尝试为我的 Rails 项目实现 Draper gem,但无法使其正常工作。我收到错误消息:

未定义的方法“存在吗?” 对于#Draper::CollectionDecorator:0x000055b625da7a10>

该错误似乎来自我在索引视图上呈现的部分内容。部分调用“@accounts.exists?” 这是发生错误的地方。如果我删除对部分的调用,我的装饰器工作正常。我觉得我需要为此使用委托命令,但我不确定。我对 Rails 还很陌生,刚刚开始探索那里的一些有用的宝石。我希望有人可以查看我的代码并为我指出正确的方向以克服此错误。谢谢!:)


模型:Account.rb

控制器:accounts_controller.rb

装饰器:account_decorator.rb

查看:accounts/index.html.erb

查看部分:accounts/_noaccounts.html.erb

0 投票
1 回答
142 浏览

ruby-on-rails - 如何在视图装饰器中连接多个标签

我的 Rails 视图中有一个装饰器。

在我看来,我只渲染了最新的部分,所以基本上是演出。不是电子邮件。如果我添加一个“+”来联系mail_tolink_to帮助者,我有一个错误。

我怎样才能连接它们?

0 投票
0 回答
54 浏览

ruby-on-rails - 如何使用draper和cancancan?

尝试使用can?方法和存根当前能力。

但我得到错误:user does not implement: current_ability.

0 投票
0 回答
96 浏览

ruby-on-rails - Rails 6如何装饰application.html.erb

我有一个application.html.erb我想将未读用户消息的计算移动到一些装饰器/帮助器的地方,基本上是因为它看起来像这样:

我知道装饰器的基本概念,但我想知道我是否ConversationDecoratorapp/decorators/conversation_decorator.rb定义的counter方法和@conversations.map 块在那里,如何在里面使用这个装饰器application.html.erb

示例对话装饰器:

0 投票
0 回答
91 浏览

ruby-on-rails - 没有 ActiveRecord 的 Rails Draper Gem Association 装饰

在我的 Rails 项目中,我使用Draper gem来装饰我的对象。

从文档看来,您可以使用以下内容装饰对象的关联项目:

这样当AuthorDecorator装饰一个Author时,它也将ArticleDecorator用于装饰关联的Articles

如果你定义一个Articletobelongs_to :author和一个Author has_many :articles;这一切都很好 并且 that AuthorandArticle都继承自ApplicationRecordorActiveRecord::Base并且您有一个带有authors表和articles表的数据库。

但是,在我的具体情况下,我的 API 服务只进行一些弹性搜索,然后执行一些计算和格式化,然后将搜索结果呈现给用户。所以没有必要为这些“计算和格式化的结果”创建一个数据库,我绝对不想为这些结果创建一个数据库。

我可能有一个模型,说:

很简单。例如Author.new(params: {'name'=> 'John'}会给我一个 id 和名称为“John”的作者。

然后是一个Ariticle模型

假设,假设我所有的文章文本和用户名都是唯一的,并且从不重复。

现在让我们创建一个作者和一些文章:

现在我打电话AuthorDecorator.decorate(author),它根本不会打电话ArticleDecorator。我认为那是因为我没有has_many :articles在我的Author模型和belongs_to :author我的Article模型中添加。但我做不到。因为如果我这样做了,我会得到一个错误

这基本上是说我需要一张桌子。但在这种情况下,我不想要一张桌子。

我应该怎么办?

谢谢!

0 投票
1 回答
32 浏览

ruby-on-rails - Rails Draper 的装饰器导致 ArgumentError

我为 Rails 项目设置了 Draper 的装饰器来替换原来的助手。我将帮助代码移至装饰器:

并在 View 中添加.decorate文本以使用它

但是,这会导致ArgumentError wrong number of arguments (given 0, expected 1)

如果我删除第一个日期,它将出现NoMethodError undefined method 'date' for #<UserDecorator:0x000055570cbafc58>

我该如何解决这些错误?