Переименование приложения Ruby on Rails

Есть ли способ переименовать приложение в Rails 2?

Ответ 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