问题标签 [hanami]

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 回答
183 浏览

ruby - 使用连接的 Hanami 存储库删除/更新操作

我在使用存储库上的连接执行删除/更新操作时遇到了一些麻烦。我有Libraries那个属于Users并且有很多Books,就像这样:

现在我想删除一个图书条目,但前提是它属于用户图书馆。我试图使用以下查询来做到这一点:

但我收到以下错误:

关于如何进行此类查询的任何建议?

0 投票
3 回答
1172 浏览

ruby - 控制器和交互器错误处理的最佳实践

我有一个控制器和一个像上面这样的交互器。我正在考虑在控制器上区分 ClientError 和 ServerError 的更好方法。

我认为如果我能处理如下错误,那就太好了。

但是,hanami-interactor 包装了自身内部引发的错误,因此控制器通过来自交互器的结果对象接收错误。

我不认为在控制器上重新引发错误是个好方法。

像这样实现错误处理程序怎么样?我知道if语句会很容易增加,所以这种方式并不聪明。

0 投票
2 回答
75 浏览

ruby - 如何在 Hanami 中转换电子邮件以包含内联外​​部 css 文件中定义的样式?

如果我使用 roadie/premailer 在 Hanami 中转换我的电子邮件,那么我应该在 Hanami 中的哪里放置转换代码?

谢谢

0 投票
1 回答
280 浏览

ruby - Capybara+Selenium+Docker 混淆:远程 Firefox 挂起

我们一直难以弄清楚如何让 Selenium JavaScript 测试与我们的 Dockerised Ruby (Hanami) 应用程序一起工作。对于不依赖于 JavaScript 的规范示例,当然,Capybara-default Rack::Test 驱动程序就足够了,但是每个现代应用程序都依赖于 JavaScript 做某件事或另一件事,我们的应用程序现在/将来也不例外。

我已经在 SO 上阅读了一些答案,并开始在 GitHub 上寻找随机的类似项目,但我们已经在这里停止了越来越多的政治上不可持续的时间长度。

总结一下:

  1. 如果在同一调用中没有运行非 JS 规范,我们可以成功运行使用 JavaScript 的特性规范。rake(我们jbodah/minitest-tagz用来过滤规范调用);
  2. 在运行我们的全套规范时,Firefox Marionette 在运行启用 JavaScript 的示例时挂起,其日志消息表明它没有应该连接的 IP 地址。

我们只找到了一组非常有限的教程/演练,这些教程/演练显然适用,到 2018 年大部分时间已经很长了。我们最公然崇拜的两个是

  1. Ahmet Kizilay 于 2016 年 2 月使用 dockerized Selenium 和 Capybara 进行集成测试;
  2. Dockerized Rails Capybara 在 Selenium 之上进行测试,Alfredo Motta 于 2016 年 5 月。

很可能,或者至少很可能,我们一直在误读或掩饰这些现在正在咬我们的东西。还值得注意的是,Docker 内部结构,尤其是与网络相关的内部结构,在过去两年中似乎发生了重大变化,这可能与我们的问题有关。

我在Gist中包含了以下文件的副本,因为它们的汇总太多,无法粘贴到此处:

  1. 00-Capybara-Selenium-Docker-confusion__readme.md:这个问题陈述;
  2. 01-docker-compose.yml:docker-compose.yml申请文件;
  3. 02-run_tests.shscripts/run_tests.sh文件中指定的作为容器command运行的文件;webdocker-compose
  4. 03-features_helper.rb:每个功能规范所需的`spec/features_helper';主要关注 Selenium 设置;
  5. 04-Dockerfile:Dockerfile用于构建web容器;
  6. 05-join_as_member_spec.rb:在应用程序中使用 JavaScript 的功能规范之一;
  7. 06-focused_logfile.logdocker-compose up --exit-code-from web:仅运行 JavaScript 执行规范示例的终端输出;
  8. 07-unfocused_logfile.log:在启用所有规范中的所有示例的情况下运行相同调用的终端输出docker-compose(即,不限于使用tag :focus)。

任何有用的评论和/或对现有工作测试设置的指针(无论使用什么框架,例如 Rails)都将不胜感激。谢谢。

0 投票
1 回答
51 浏览

api - Relation#as will change behavior in 4.0. Use `map_to` instead

In hanami guide https://hanamirb.org/guides/1.2/associations/has-many/#usage

when I use the method

I got a message:

[deprecated] Relation#as will change behavior in 4.0. Use `map_to` instead => Called at: /Users/saika/Documents/local/kadai-hanami/ticket_api/lib/ticket_api/repositories/book_repository.rb:7:in `find_with_tickets' /Users/saika/Documents/local/kadai-hanami/ticket_api/apps/api/controllers/books/show.rb:9:in `call' /Users/saika/.rvm/gems/ruby-2.4.0/gems/hanami-controller-1.2.0/lib/hanami/action/callbacks.rb:195:in `call' /Users/saika/.rvm/gems/ruby-2.4.0/gems/hanami-controller-1.2.0/lib/hanami/action/callable.rb:71:in `block in call' /Users/saika/.rvm/gems/ruby-2.4.0/gems/hanami-controller-1.2.0/lib/hanami/action/throwable.rb:145:in `block in _rescue' /Users/saika/.rvm/gems/ruby-2.4.0/gems/hanami-controller-1.2.0/lib/hanami/action/throwable.rb:143:in `catch'

I do not know what should I instead use 'map_to'.

0 投票
2 回答
139 浏览

ruby - 如何重构 Hanami 中的查询链?

如何重构#filtered方法?

在 Hanami 中,没有办法以 ActiveRecord 样式进行查询链(过滤器)。我想获得像 ActiveRecord 过滤器这样的方法。

现在:documents.filtered(genre: 'news', min_published_at: from, max_published_at: to, skip: 30)

我想要的是:documents.with_genre('news').published_between(from, to).skip(30)

0 投票
2 回答
115 浏览

ruby - 在没有路由器等的情况下使用 Hanami 模型和 rake 任务

我将编写一个使用 amqp 协议的服务,完全没有 http。我喜欢 hanami 的 repository-entity-model-interactors 范例,我想在我的项目中使用这些范例。当然,手工生成所有这些东西很无聊。

所以,我想知道要抓耙任务。查看配置/环境等,呃。不久,在没有 hanami 路由器和控制器的情况下使用这些工具的最佳方法是什么?或者,它们都紧密集成在一起?

正如我当时认为的那样,有两种方法:

a) 仅将 hanami-model 包含到我的 Gemfile 中,然后从 gem hanami 手动复制每个需要的文件。

b) 创建 hanami 项目,不要使用 rackup。

我很失望。

0 投票
1 回答
71 浏览

hanami - 如何在另一个视图中使用视图中定义的方法(帮助程序)?

假设我在 View 中定义了一个表单

我错过了什么吗?因为下面的例子不起作用:

0 投票
0 回答
162 浏览

rspec - HANAMI 将路由重新加载到 Rspec 测试中

早上好,我有一个问题。在更改我的环境变量后,我如何将我的路由重新加载到 RSpec 测试中,就像我在 rails 中所做的一样(Rails.application.reload_routes!)谢谢!古斯塔沃

0 投票
1 回答
183 浏览

ruby - Hanami rake 任务不加载存储库

我有名为 hanami 1.3.0 的应用程序booking。有 rake 任务/rakelib/motel.rake

booking/motel/booker需要 booking_repository 文件,并尝试实例化 BookingRepository,但失败并出现错误:

但是,当我在 hanami 控制台中运行时,它可以毫无问题Booking::Motel::Booker.new.book地加载。BookingRepository

查看了许多有关 hanami rake 的堆栈问题,但找不到答案。