Есть ли способ переименовать приложение в Rails 2?
Переименование приложения Ruby on Rails
Ответ 1
Вы можете использовать https://github.com/morshedalam/rename для переименования приложения Rails 3
Ответ 2
Количество мест в ваших файлах, где ваше приложение должно быть переименовано (Rails 3.1), или вы не сможете запустить свой сервер. Итак, сделайте следующее:
1) Переименуйте каталог
2) Переименуйте module (yourapp)
в файл Application.rb.
3) Переименуйте (yourapp)::Application
в следующих файлах:
environment.rb
routes.rb
config.ru
Rakefile
Инициализаторы/secret_token.rb
Инициализаторы/session_store.rb
environment/test.rb, production.rb и development.rb
4) Вы также можете переименовать базы данных в config.database.yml.sqlite3 в (yourapp) _development, (yourapp) _test и т.д. В этом случае может потребоваться перезагрузить ваши базы данных. Я использовал камень yaml_db и rake db:reload
для этого и работал.
Это должно сделать это.
Ответ 3
У меня возникли проблемы с переименованием приложения Rails 3. Затем я нашел этот плагин и работает как шарм.
Ответ 4
Rails 2 действительно не имеет понятия имени приложения. Единственное, что идентифицирует ваше приложение, - это имя самой папки.
В Rails 3 это немного отличается. Рельсы 3 проекта распределены по именам до модуля, определенного в config/application.rb
. Этот прикладной модуль используется для размещения вашего приложения, и вы увидите, что он ссылается на ваши config.ru
, config/routes.rb
, config/environment.rb
и все среды, определенные в config/environments/
.
Если вы должны были открыть сеанс терминала и запустить команду rails new myapp
, ваш файл config/application.rb
будет определять модуль Myapp
, внутри которого будет определен класс Application, который расширяет Rails:: Application. Все остальные файлы будут ссылаться на Myapp::Application
.
В обоих Rails 2 и 3 вы найдете строковый ключ для вашего сеанса, определенный в config/initializers/session_store.rb
, который принимает значение по умолчанию '_ <myapp> _session'. Это не связано с "именем" вашего приложения, хотя вы должны стараться держать его в синхронизации, чтобы предотвратить случайное имя ключа сеанса с другими приложениями.
Ответ 5
просто переименуйте каталог приложения, не более того. Я делал это несколько раз, никаких проблем.
Ответ 6
Я написал следующий script, чтобы сделать именно это. Вы также можете увидеть его на https://gist.github.com/danielpclark/8dfcdd7ac63149323bbc
#!/usr/bin/ruby
# Rename Rails Project (File: rename_rails)
# Copyright 6ft Dan(TM) / MIT License
# Check the config/application.rb for capital usage in project name by model OldProjectName
# Usage: rename_rails OldProjectName NewAwesomeName
# Replace string instances of project name
`grep -lR #{ARGV[0]} | xargs sed -i 's/#{ARGV[0]}/#{ARGV[1]}/g'`
`grep -lR #{ARGV[0].downcase} | xargs sed -i 's/#{ARGV[0].downcase}/#{ARGV[1].downcase}/g'`
# Rename Rails directory if it exists
if File.directory?(ARGV[0])
`mv #{ARGV[0]} #{ARGV[1]}`
drc = ARGV[1]
elsif File.directory?(ARGV[0].downcase)
`mv #{ARGV[0].downcase} #{ARGV[1]}`
drc = ARGV[1]
end
# Delete temporary files (helps prevent errors)
drc ||= ''
if ['cache','pids','sessions','sockets'].all? {
|direc| File.directory?(File.join(drc,'tmp', direc)) }
FileUtils.rm_rf(File.join(drc,'tmp'))
end
И я создал видео на YouTube. http://youtu.be/dDw2RmczcDA