gpt4 book ai didi

ruby-on-rails - 为 Ruby gem 创建安装生成器

转载 作者:数据小太阳 更新时间:2023-10-29 07:07:52 24 4
gpt4 key购买 nike

我是构建 Ruby gems 的新手,正在尝试我的第一个。我正在为我的 gem 编写一个生成器,它将在我的 Rails 应用程序中生成一个迁移。我希望将 gem 简单地包含在 Rails 应用程序中,运行“rails g mygem:install”以创建迁移,然后运行“rake db:migrate”以完成所有操作。

我已经找到了几种不同的方法来完成类似的任务,但到目前为止没有任何效果。我似乎无法让 Rails 应用程序找到生成器。我尝试过的最新指南位于此处:http://www.railsdispatch.com/posts/how-rails-3-enables-more-choices-part-1 .

这是我当前的 gem 结构:

-lib/
-generators/
-templates/
-some_migration.rb
-install_generator.rb
-gemname/
-rails/
-railtie.rb
-engine.rb
-tasks/
-gemname.rake
-gemname.rb
-spec/
-gemname.gemspec

这是我的 install_generator.rb 文件的样子:

require 'rails'

module Gemname
class InstallGenerator < ::Rails::Generators::Base
include Rails::Generators::Migration
source_root File.expand_path('../templates', __FILE__)

desc "add the migrations"
def self.next_migration_number(path)
unless @prev_migration_nr
@prev_migration_nr = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
else
@prev_migration_nr += 1
end
@prev_migration_nr.to_s
end

def copy_migrations
migration_template "some_migration.rb", "db/migrate/some_migration.rb"
end
end
end

我不确定我是否遗漏了什么。我正在使用 Rails 3.2 应用程序进行测试,该应用程序在其 Gemfile 中列出了我的 gem 并且安装了 gem。 gem 文件夹结构有什么问题可能会阻止我的生成器出现吗?我需要在某处要求什么吗?

感谢任何帮助。

最佳答案

Rails 不再像以前那样默认自动加载 lib 中的所有内容。有关要求文件的几种方法,请查看此问题的答案 - Best way to load module/class from lib folder in Rails 3? .

关于ruby-on-rails - 为 Ruby gem 创建安装生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13619716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com