Переименование приложения Ruby on Rails - PullRequest
24 голосов
/ 17 июля 2010

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

Ответы [ 6 ]

27 голосов
/ 11 января 2013

Вы можете использовать https://github.com/morshedalam/rename для переименования приложения Rails 3

23 голосов
/ 17 февраля 2012

Количество мест в ваших файлах, где ваше приложение должно быть переименовано (Rails 3.1), иначе вы не сможете запустить свой сервер.Сделайте следующее:

1) Переименуйте каталог

2) Переименуйте module (yourapp) в файле Application.rb.

3) Переименуйте (yourapp)::Application в следующемфайлы:

environment.rb

rout.rb

config.ru

Rakefile

инициализаторы / secret_token.rb

initializers / session_store.rb

environment / test.rb, production.rb и development.rb

4) Вы также можете переименовать базы данных в config.database.yml.sqlite3 в(yourapp) _development, (yourapp) _test и т. д. В этом случае может потребоваться перезагрузить базы данных.Я использовал для этого гем yaml_db и rake db:reload и работал.

Это должно сделать.

9 голосов
/ 08 мая 2012

У меня возникли проблемы с переименованием приложения Rails 3. Затем я нашел этот плагин , и он работает как шарм.

8 голосов
/ 17 июля 2010

В Rails 2 на самом деле нет понятия «имя» приложения. Единственное, что идентифицирует ваше приложение - это имя самой папки.

В Rails 3 все немного по-другому. Проекты Rails 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, который принимает значение по умолчанию '_ _session'. На самом деле оно не привязано к «имени» вашего приложения, хотя вы должны стараться синхронизировать его, чтобы предотвратить случайные конфликты имен ключей сеансов с другими приложениями.

2 голосов
/ 17 июля 2010

просто переименуйте каталог приложения, не более того.Я делал это несколько раз, никаких проблем.

1 голос
/ 26 мая 2014

Я написал следующий скрипт для этого. Вы можете увидеть это также на 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...