问题标签 [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.
ruby-on-rails - Rails 4 App 上的 Draper 和 RSpec 以及 Factory Girl 控制器规范
我第一次使用 Draper,效果很好……除了它打破了我的大部分规格。一个例子:
我正在设置一个 account_settings_controller_spec.rb
这以前工作得很好(我已经config.include FactoryGirl::Syntax::Methods
开始像这样打电话给工厂了)
但是现在当我打电话时,create :user
我得到undefined method 'full_name' for class 'User'
了我从我的用户模型移动到我的 UserDecorator 的方法。
这很奇怪,因为工厂,也不是规范,使用该full_name
方法。
我尝试了多种方法:
ApplicationController.new.set_current_view_context
在前块中(这会导致错误)require 'draper/test/rspec_integration'
到我的 spec_helper.rb (什么都不做)- 添加
before/after(:create) { |instance| instance.decorate }
到我的工厂(也什么都不做)
我不确定我在这里缺少什么,甚至不确定为什么会抛出错误。当 RSpec 启动时,也许我的装饰器没有被包括在内?
ruby-on-rails - 如何为使用同一张表的一组模型创建装饰器?
我有一个 Rails 项目,其中有大量模型都通过单表继承使用同一个表。它们都是不同类型的组织。
是否可以使用draper gem来简化我的模型,而无需为从我的组织模型继承的每个模型创建装饰器?
ruby-on-rails - 提供由 Draper 装饰的类
在 draper gem 的 1.0 之前的版本中,我们能够使用decorates
显式指定要修饰的类的方法(例如,当类被命名空间时):
现在(draper 1.3)decorates
不接受附加参数。但只是省略 :class 选项会导致"uninitialized constant MyClass"
.
draper不能自动扣除类名的类怎么装饰?
ruby-on-rails-4 - 使用 draper 生成器时出错
我在生成 draper 时遇到了问题。
当我使用rails g draper:decorator user
我懂了 :Could not find generator draper:decorator.
- 我在 gem 文件中得到了 draper 并进行了捆绑安装。
有什么建议么 ?
谢谢,
ruby-on-rails - 在视图开始时装饰对象(使用 Draper)有什么不好的吗?
Draper 建议在控制器方法的末尾装饰对象,或者使用它们的decorates_associated
方法自动装饰它们。
我喜欢视图明确声明它期望接收什么的想法(当然,Rails 的其余部分不能像这样工作,但它仍然感觉很好)。因此,我更喜欢在视图顶部而不是在控制器末尾装饰对象:
所以在 users#show 我想做:
而不是像这样在用户控制器中进行装饰
我怀疑以这种方式做事存在一些缓存问题,但感觉很好。如果我遗漏了什么怎么办?我建议的做法是不好的做法吗?
ruby-on-rails - 如何使用 Draper 使用模块化装饰器装饰 STI 模型?
我将 Draper 用于一般视图层装饰器。
我有一些与控制台相关的、人类可读的功能,我想将其引入新的装饰器中。
我的第一个想法是将它们放在一个模块中,例如,Human::XxxDecorator
使它们与我的普通视图层装饰器隔离:它们只是用于rails c
调试/黑客/测试工作。
这在顶层运行良好;我可以使用命名空间装饰器显式装饰模型。
现在我需要装饰一系列 STI 车辆。我不确定在同一个装饰器模块中创建特定于车辆类型的装饰器的最佳方法是什么,例如,我有:
Human::CarDecorator
Human::TruckDecorator
Human::MotorcycleDecorator
我不知道如何从,例如,
Human
到其嵌入的车辆集合,每个车辆都有来自模块的适当装饰器。使用天真的方法decorates
不起作用;我得到:
组合:
- 来自特定模块的装饰器,以及
- 适合 STI 模型的装饰器
正在扔东西。
在深入研究 Draper 装饰器推理代码之前(我只是假设这是最好的起点),这是一个已经解决的问题并且我遗漏了一些东西吗?
ruby-on-rails - 使用带有 angularjs 和 json 的 rails draper gem
所以,我看到人们围绕这个话题跳舞,但我找不到答案。我刚刚安装了带有导轨的'draper' gem。这很棒,但我希望能够将它与 angularjs 一起使用。有没有办法做到这一点?还是我只需要在 angularjs 中制作一个服装装饰器……这意味着我的 'draper' gem 没用:
我的html是:
我的导轨控制器是:
ruby-on-rails-4 - Draper 导致 text_field 输出不正确的结果
我正在使用 draper 来清理一些视图逻辑。我有一些这样的代码:
装饰师:
形式:
输出:
<input disabled="disabled" id="event_type_1_name" name="#<EventType:0x007f9db6df9cf0>[name]" type="text">
预期输出:
<input value="Miscellaneous" disabled="disabled" id="event_type_1_name" name="event_type[name]" type="text">
我不完全确定这里发生了什么。任何人都可以提供一些帮助吗?在我使用 draper 并在模板中有逻辑之前,一切都运行良好。我也不知道很多红宝石,所以我可能会遗漏一些明显的东西,对不起!
ruby-on-rails - 装饰实例上的未定义方法
这是一个装饰器
应用程序/装饰器/campaign_decorator.rb
当我调用CampaignDecorator.custom_method
它时找不到方法。还CampaignDecorator.first.created_at
返回未格式化的日期。
谁能告诉我我错过了什么?
ruby-on-rails - 如何从 Rails 中的 Draper 装饰器访问会话变量?
我希望能够从装饰器访问会话变量。现在我不能这样做,也不能访问控制器实例变量,比如说@session_variable
.
有没有一种干净的方法来实现这一目标?
谢谢!