问题标签 [rails-generators]

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 投票
2 回答
181 浏览

ruby-on-rails - 从 rails composer custom recipe 中的 repo 克隆时,Thor empty_directory 命令引发“权限被拒绝”

今天我要反对这个:

mkdir': Permission denied @ dir_s_mkdir - /app/assets/stylesheets/material_ui (Errno::EACCES)

我正在创建自己的 Rails 作曲家生成器。我想要的是从我的仓库中克隆一些文件并将它们放在我调用时生成的应用程序rails new etc etc...中。生成器运行良好(它克隆了很多文件,它甚至解压缩了一个大字体文件夹!)并且除了一个之外,所有的食谱都可以工作。

这一个包含(除其他外)这一行

empty_directory '/app/assets/stylesheets/material_ui'

此 Thor 操作失败说“权限被拒绝”。

当然我之前不能 CHMOD 任何东西,因为在我启动rails new命令之前没有任何文件夹。

如何使用 Thor 在 Rails Composer 配方中创建目录?

0 投票
1 回答
1062 浏览

ruby-on-rails - 将迁移添加到 Rails 引擎的安装生成器

在我的 rails 5 引擎中,我想将引擎迁移的安装与我在以下位置的自定义安装生成器一起安装:

myengine/lib/generators/myengine/install_generator.rb

这个生成器目前看起来像这样:

当我将引擎添加到 rails 应用程序时,不必调用:

然后

如何将这些迁移的创建添加到自定义生成器?

0 投票
3 回答
1297 浏览

ruby-on-rails - 如何使用 RSpec 测试生成器

有没有推荐的使用 RSpec测试Rails 生成器的方法?我找到的唯一解决方案是Generator Spec gem,两年多没有更新。

0 投票
1 回答
150 浏览

ruby-on-rails - Rails 5 生成器 db:rollback 虽然在删除迁移文件之前被调用,但什么都不做

我可能对 rails 生成器工作流程有误解,但是经过几天的代码和文档搜索后,我找不到问题的解决方案。

我制作了一个自定义脚手架生成器,用于添加一些额外的文件,并在创建脚手架文件后立即运行生成的迁移。使用相同的方法,当执行rails destroy my_scaffold命令以便在删除迁移文件之前回滚时,我尝试将迁移作为第一件事进行回滚。

我的自定义生成器代码scaffold_meta.rb,在创建迁移文件后运行 db:migrate 命令。这是工作部分。

之前的代码最终调用了我的自定义model_generator.rb,它会在删除迁移文件之前尝试回滚。

具有撤销行为的生成器的输出显示了如何调用rake db:rollback但没有效果。

任何帮助都会非常感激。

0 投票
1 回答
45 浏览

ruby-on-rails - 跳过 Active Record 中断 Rails 生成器

我创建了一个-O --api打开标志的新 Rails 项目,rails g model现在对我来说已经坏了:它什么都不做,只是说“通过 Spring 预加载器运行”(它不是 Spring 错误,因为我尝试删除 Spring)并返回。

之后,我创建了一个新项目(完全相同,只是没有-O),并且rails g model工作正常。跳过 AR 会破坏生成器吗?如果是这样,我该如何避免?

我在 Ubuntu Linux 16.04 LTS 上使用 Ruby 2.3.1 和 Rails 5.0.0.1。

0 投票
0 回答
422 浏览

ruby-on-rails - Ruby Gem InstallGenerator 找不到生成器':安装

我刚刚尝试为我的 css 网格系统制作一个 ruby​​ gem。但是我正处于它向我展示的地步rails g --help

当我尝试运行 rails g tkd_grid:install 时,我收到以下消息:

我正在尝试在 rails 项目的应用程序 scss 或应用程序 css 文件中注入一个需求。它显示为 rails 生成器,但在我尝试安装时不起作用。

有谁知道如何解决这个问题?

0 投票
1 回答
1687 浏览

ruby-on-rails - Rails::Generator 没有在 spec 文件夹中创建工厂

我正在尝试在模块内生成一个新工厂,我基本上需要

我正在调用下面的命令。请注意,它会在test 文件夹中创建文件。

当我尝试在终端中生成工厂时,它会在spec 文件夹中创建工厂:

我的问题是:我基本上想在运行时在spec 文件夹Rails::Generators.invoke 'factory_girl:model', ["Audit"]中创建工厂。

我已经被这个问题困住了几个小时,这就是我在这里的原因:) 有什么想法吗?

0 投票
0 回答
28 浏览

ruby-on-rails - 生成器列表在哪里配置密钥?

Where list 或如何获取生成器键列表 ( assets, template_engine) 以进行禁用,如下所示:

执行rails generate时显示生成器列表。可以禁用assets生成器,因为它是通过命令显示的。但是如何猜测或获取键名template_engine等键来禁用?

0 投票
1 回答
60 浏览

indexing - Rails 5 连接表生成默认值的基本原理

Rails 5 命令rails g migration create_foo_bar_join_table生成以下迁移:

class CreateFooBarJoinTable < ActiveRecord::Migration[5.0] def change create_join_table :foos, :bars do |t| # t.index [:foo_id, :bar_id] # t.index [:bar_id, :foo_id] end end end

为什么生成器使用复合键存根两个(双向)索引?还有为什么他们被注释掉了?我对此感到困惑,找不到任何明确的解释来说明这些建议的默认值。

上述索引是否比以下索引更高效? ... create_join_table :foos, :bars do |t| t.index :foo_id t.index :bar_id end ...

0 投票
1 回答
1038 浏览

ruby-on-rails - 如何创建自定义 Rails 生成模型功能?

我有一个 Rails 5 应用程序,它对三个数据库进行了单独的迁移。我正在添加一个新数据库。我通常会做一个rails g model field1:type1 field2:type2 field3:type.... 来创建具有所需字段的数据库表。我想创建生成模型语句,它将为所需的数据库生成模型并将其放在相应的 db/migrate 文件夹中。

我为 lib/generators 中的其他数据库提供了自定义数据库迁移生成器。这是自定义迁移生成器的示例。

我假设我需要为每个附加数据库创建 lib/generators/mydb_model_generator.rb 或任何正确的文件名结构。在查看 GitHub 中的model_generator.rb文件后,我想我可以做这样的事情。

以下是我在查看 Rails 的 git 存储库、关于创建和自定义生成器的 Rails 指南以及 Ruby on Rails API 文档后提出的问题:

  1. 我如何找到我需要的东西?
  2. 如何找到我需要覆盖 db/migrate 文件夹名称的方法?
  3. 如何找出如何为模型生成器命名 rb 文件?

我在尝试创建模型生成器时的假设是否正确?