小编Hel*_*iro的帖子

如何让Rails在应用程序代码之后加载插件*?

我正在尝试编写一个定义MongoMapper模型的插件.问题是,当我运行时script/console,我收到此错误:

/home/helder/.rvm/gems/ruby-1.8.7-p249/gems/mongo_mapper-0.8.2/lib/mongo_mapper/connection.rb:29:in ``database':NameError:MongoMapper :: Connection`中未初始化的类变量@@ database_name

这让我觉得它在设置数据库连接之前试图加载我的插件模型.如何在其余的应用程序代码之后加载插件?

ruby-on-rails mongomapper

6
推荐指数
1
解决办法
2146
查看次数

Rails 的 Django 信号等效吗?

在 Rails 中,我见过的最接近Django Signals的是Observers。它们的问题在于,它们仅限于触发与模型生命周期相关的硬编码事件的回调。

Django 信号可以在任何地方创建、在任何地方触发并在任何地方处理。模型生命周期回调只是碰巧内置的常规信号,由 ORM 触发。

有谁知道 Rails 有类似的通用解决方案吗?它可以是一些通用的 Ruby 库,不依赖于 Rails,这会更好。


编辑:观察者是最接近的东西,但这不是我正在寻找的东西。这是一个一对多的解决方案。任何人都可以收听,但只有原始对象可以发帖。我想要一个声明信号的东西,任何人都可以触发它并处理它。另外,我不喜欢 Ruby Observer 规定处理程序具有 #update 方法。我希望能够传递具有适当签名的任何方法引用。

我可以使用 Ruby Observer 来实现我自己的此类代理,但我正在尝试了解是否有人已经这样做了。

ruby django ruby-on-rails callback observer-pattern

5
推荐指数
1
解决办法
1929
查看次数

在 Rails 中引用相同类型的装置

在不同模型之间的关联中,可以通过使用夹具名称来避免直接设置外键 ID,如本答案中所示。自引用关联怎么样,例如使用acts_as_tree时?尝试这个:

# categories.yml
forsale:
  name: For Sale
  parent_id: nil

books:
  name: Books
  parent: forsale
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

SQLite3::SQLException: table categories has no column named parent: INSERT INTO "categories" ("name", "parent") VALUES ('Books', 'forsale')
Run Code Online (Sandbox Code Playgroud)

有没有办法让一个灯具在同一类中引用另一个灯具而不使用显式 ID?

更新:

在括号之间附加类名(如多态的 own_to固定装置)也不起作用。这样做:

books:
  name: Books
  parent: forsale (Category)
Run Code Online (Sandbox Code Playgroud)

生成一个随机的parent_id代替booksforsaleID。

unit-testing ruby-on-rails fixtures

5
推荐指数
1
解决办法
1437
查看次数

如何使用Gatsby将任意文件添加到/ public?

我想添加一个文本文件/src,使其始终在构建目录(/public)的根目录中保持不变。

具体来说,我需要为Netlify 添加一个_redirects 文件,以将子域重定向到自定义域。

运行Gatsby 1.0 alpha。

gatsby netlify

4
推荐指数
2
解决办法
1273
查看次数

当VSCode弹出时,我可以使用哪些键盘快捷方式关闭错误输出面板?

我点击保存,出现了一些错误,弹出了一个面板,其中打开了“输出”选项卡。如何不使用鼠标将其关闭?

visual-studio-code

3
推荐指数
1
解决办法
350
查看次数

VSCode:如何在不使用鼠标的情况下在“文件查找”中执行“清除搜索结果”?

使用Command-Shift-f搜索项目目录中的文件后,打开的文件将突出显示搜索字符串。取消显示它们的唯一方法似乎是清除搜索结果。但是,键入“ Esc”不会这样做。我必须单击右上角的“清除搜索结果”按钮。有键盘快捷键吗?

visual-studio-code

3
推荐指数
1
解决办法
1264
查看次数

如何找出 VSCode 中哪个命令名称绑定到特定的按键序列,反之亦然?

是否有相当于 Emacs'C-h k和的命令C-h w

如果没有,是否至少有一个包含我可以搜索的所有键绑定的大文件?

编辑:如果您知道命令名称,“反之亦然”就很简单。只需在命令提示符中键入它,它就会显示关联的键绑定。我对前者更感兴趣。

visual-studio-code

3
推荐指数
1
解决办法
594
查看次数

在 macOS 上使用 npm 安装 Sharp 时出错

如果我创建一个新的 npm 项目:

mkdir ~/test
cd ~/test
npm init -y
Run Code Online (Sandbox Code Playgroud)

然后尝试安装Sharp

npm install --save sharp
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

> sharp@0.18.4 install /Users/hsribei/tmp/test/node_modules/sharp
> node-gyp rebuild

sh: /usr/local/lib/node_modules/npm/bin/node-gyp-bin/node-gyp: Permission denied
npm WARN test@1.0.0 No description
npm WARN test@1.0.0 No repository field.

npm ERR! code ELIFECYCLE
npm ERR! errno 126
npm ERR! sharp@0.18.4 install: `node-gyp rebuild`
npm ERR! Exit status 126
npm ERR!
npm ERR! Failed at the sharp@0.18.4 install script.
npm ERR! This is probably not a problem with npm. There …
Run Code Online (Sandbox Code Playgroud)

npm sharp

3
推荐指数
1
解决办法
4311
查看次数

我可以在不同的URL路径下的同一个域上拥有多个PWA吗?

例如,我可以在下面创建一个PWA,在example.com/todo-app另一个下创建一个PWA example.com/time-tracking-app,并且每个都是一个完全独立的应用程序,可以在主屏幕上"安装"不同的图标,有自己的单独通知等等?

progressive-web-apps

3
推荐指数
1
解决办法
958
查看次数

如何制作一个完全禁用 prettier 的 prettierrc 文件?

我正在编辑一个不使用Prettier的存储库,但我的编辑器(Emacs)prettier-js-mode基于文件扩展名加载。因此,在保存文件时,我会收到一堆无法提交的空白更改,因为它会污染上游存储库。

到目前为止,我的想法是添加一个.prettierrc禁用 Prettier的本地文件,然后将其添加到我的.git/config/exclude文件中,这样上游就不必知道它。

但是我如何制作这样的文件?

在我的情况下,我希望在项目的根目录中有一个文件,该文件将禁用整个项目的 Prettier,但我也可以看到其他人可能希望有一种方法对子目录执行相同的操作。

prettier

3
推荐指数
1
解决办法
1867
查看次数

使用MongoMapper的嵌入式文档的父关联

如果我有:

class Post
  include MongoMapper::Document

  has_many :comments
end
Run Code Online (Sandbox Code Playgroud)

如果我做:

class Comment
  include MongoMapper::EmbeddedDocument

  belongs_to :post # relevant part
end
Run Code Online (Sandbox Code Playgroud)

这是使用_root_document/ 创建关联_parent_document,还是必须添加(冗余)key :post_id

mongomapper

2
推荐指数
1
解决办法
1668
查看次数

如何使用 Chrome 内容脚本,匹配 URL 查询参数上的模式?

我正在尝试使用内容脚本制作 Chrome 扩展程序,仅匹配 Google-Images 搜索结果页面。
它们(据我所知)&tbm=isch在 URL 参数中标识。但是,匹配模式似乎只适用于路径。我该怎么做呢?

google-chrome-extension content-script

2
推荐指数
1
解决办法
2884
查看次数