2010-07-17 15 views

Respuesta

2

simplemente cambie el nombre del directorio de la aplicación, nada más. Lo hice varias veces, sin problemas.

8

Rails 2 realmente no tiene un concepto de una aplicación 'nombre'. Lo único que identifica su aplicación es el nombre de la carpeta en sí.

En Rails 3, es un poco diferente. Los proyectos de Rails 3 están espaciados por nombre a un módulo definido en config/application.rb. Este módulo de aplicación se utiliza para alojar su aplicación, y verá que se hace referencia a ella en config.ru, config/routes.rb, config/environment.rb y todos los entornos definidos en config/environments/.

Si se va a abrir una sesión de terminal y ejecute el comando rails new myapp, su archivo config/application.rb definiría el módulo Myapp, dentro de la cual se define una clase de aplicaciones, que se extiende Rails :: Application. Todos los demás archivos harán referencia al Myapp::Application.

En ambos carriles 2 y 3, se encuentra una llave de cadena para la sesión se define en config/initializers/session_store.rb, que toma el valor por defecto de '_ <miaplicacion> _SESSION'. No está realmente relacionado con el "nombre" de su aplicación, aunque debería tratar de mantenerlo sincronizado para evitar que cualquier nombre de clave de sesión accidental entre en conflicto con otras aplicaciones.

23

Número de lugares en sus archivos donde debe cambiar el nombre de su aplicación (Rails 3.1) o no podrá iniciar su servidor. Así que haga lo siguiente:

1) Cambie el nombre del directorio

2) Cambiar el nombre de module (yourapp) en el archivo application.rb.

3) Cambiar el nombre de (yourapp)::Application en los siguientes archivos:

environment.rb

routes.rb

config.ru

Rakefile

inicializadores/secret_token.rb

inicializador s/session_store.rb

entornos/test.rb, production.rb y development.rb

4) También puede cambiar el nombre de las bases de datos en config.database.yml.sqlite3 a (yourapp) _development, (yourapp) _test. Puede ser necesario volver a cargar sus bases de datos en este caso. Usé la gema yaml_db y rake db:reload para hacer esto y funcionó.

Eso debería hacerlo.

9

Tuve algunos problemas para cambiar el nombre de una aplicación Rails 3. Encontré this plugin y funciona como un amuleto.

+0

¡Muy bien, gracias! –

+0

+1! funciona increíble sin ninguna molestia. Estoy usando Rails 3, aunque: P – uday

28

Se puede utilizar para cambiar el nombre https://github.com/morshedalam/rename aplicación Rails 3

+3

Esto funcionó muy bien para Rails 3.2.11. –

+3

Funcionó con rieles 4 también. –

+0

Fantástico, me funcionó también para Rails 4. Joya muy conveniente. – emery

1

He escrito el siguiente script para hacer precisamente eso. Se puede ver también en 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 

Y he creado un video en YouTube howto. http://youtu.be/dDw2RmczcDA