Как мне заставить этот генератор плагинов работать в Rails? - PullRequest
0 голосов
/ 03 декабря 2011

Прежде всего, я новичок в рельсах.Я хочу сделать таблицу country.list в своей базе данных, чтобы я нашел отличный плагин для github со значением https://github.com/mm1/country-list, поэтому я как-то понял, как его установить.Я выполнил следующую команду в корне моего приложения: rails plugin install https://github.com/mm1/country-list, который установил плагин в папке vendor / plugins.Теперь я хочу использовать его для создания таблицы списка стран, как мне это сделать?

Ответы [ 3 ]

0 голосов
/ 03 декабря 2011

Плагин, который вы пытаетесь использовать, очень старый. Попробуйте что-то вроде Кармен . Он совместим с версией Rails, на которую вы ориентируетесь, и имеет множество приятных функций.

0 голосов
/ 03 декабря 2011

Если вы посмотрите на исходный код, генератор на самом деле мало что делает. Вы можете легко восстановить эти шаги вручную. Вот что он делает:

# 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
0 голосов
/ 03 декабря 2011

запустите rake db: migrate, и у вас будет модель страны для использования плагина.так что вы можете использовать атрибут этой модели в любом месте, как вы хотите, например

. На сайте упоминаются атрибуты страны модели: name, iso2, iso3 и числовой для ISO 3166

, так что вы захотитеиспользовать эту модель, вы можете дать что-то вроде

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