如何使这个插件生成器在Rails中工作?

时间:2011-12-03 12:13:27

标签: ruby-on-rails plugins generator

首先,我是rails的新手。我想在我的数据库中创建一个country.list表,所以我在https://github.com/mm1/country-list的github上找到了一个很棒的插件,所以我想出了如何安装它。我在我的应用程序根目录中运行了以下命令:rails plugin install https://github.com/mm1/country-list,它在vendor / plugins文件夹中安装了该插件。现在我想用它来生成country-list表,我该如何使它工作?

3 个答案:

答案 0 :(得分:0)

运行rake db:migrate,你将拥有一个使用该插件的模型国家/地区。 所以你可以在任何你想要的地方使用这个模型的属性

网站中提到的模型国家/地区的属性是ISO 3166的名称,iso2,iso3和数字

所以无论你想在哪个地方使用这个模型,你都可以提供类似

的东西
country = Country.all
country_name = country.find(id).name # id can be any unique attribute

答案 1 :(得分:0)

您尝试使用的插件非常陈旧。尝试类似carmen的内容。它与您定位的Rails版本兼容,并且具有许多不错的功能。

答案 2 :(得分:0)

如果查看源代码,生成器实际上并没有做太多。您可以手动轻松地重新创建这些步骤。这就是它的作用:

# check if "migrate" folder exists
#if not then create the folder
migrations_directory_path = "#{RAILS_ROOT}/db/migrate"
Dir.mkdir(migrations_directory_path) unless File.directory?(migrations_directory_path)

#copy countries migration
record do |m|
  m.file 'migrations/create_countries.rb', "db/migrate/{Time.now.strftime("%Y%m%d%H%M%S")}_create_countries.rb"
end

它所做的只是将迁移文件复制到新位置!你可以自己从irb:

开始
File.copy("plugins/country-list/generators/countries_list/templates/migrations/create_countries.rb", "db/migrate/#{Time.now.strftime("%Y%m%d%H%M%S")}_create_countries.rb")

提供的模型实际上并不包含任何东西,它只是一个骨架:

class Country < ActiveRecord::Base
end