如何更改Ruby on Rails应用程序名称?

时间:2010-12-08 02:25:36

标签: ruby-on-rails ruby-on-rails-3

我有一个使用以下命令创建的Ruby on Rails应用程序:

rails new old_name -d mysql

现在我想将应用程序名称更改为new_name

仅更改应用程序文件夹名称是不够的,因为例如,还必须更改数据库名称(从old_name_developmentnew_name_development)。我想知道自动生成的文件中是否还有其他地方需要更改。

是否有用于更改应用程序名称的内置命令?

8 个答案:

答案 0 :(得分:70)

在Rails 3中,以下文件中引用了应用程序名称:

  • 配置/ application.rb中
  • 到config / environment.rb
  • 配置/环境/ development.rb
  • 配置/环境/ production.rb
  • 配置/环境/ test.rb
  • 配置/初始化/ secret_token.rb
  • 配置/初始化/ session_store.rb
  • config / mongoid.yml(如果使用Mongoid)
  • 配置/ routes.rb中
  • config.ru
  • Rake文件
  • app / views / layouts / application.html.erb,标题标记

答案 1 :(得分:32)

有一个Rails插件可以帮到你。超级方便。

https://github.com/get/rename

答案 2 :(得分:9)

在Rails 3中,应用程序类在config / application.rb中定义,并在环境文件(config / environment.rb,config / environments / * .rb)和config / routes.rb中引用。我认为就是这样,但如果错过了一个,你应该很快从rails服务器中找到它。 :)

  • 配置/ application.rb中
  • 配置/ enviroment.rb
  • 配置/环境/ *。RB
  • 配置/ routes.rb中

那就是说,除非你有一个非常具体的理由想要改变它,否则我不会打扰。不会以任何其他方式影响应用程序。

答案 3 :(得分:3)

Rails 3应用程序可以使用https://github.com/morshedalam/rename

重命名

答案 4 :(得分:1)

运行以下命令从Rails(3.0.7)项目的根目录替换new_name的old_name。

replace old_name new_name -- ./config/environment.rb ./config/application.rb ./Rakefile ./config/initializers/secret_token.rb ./config/environments/production.rb ./config/environments/development.rb ./app/views/layouts/application.html.erb ./config/routes.rb config.ru ./config/environments/test.rb ./config/initializers/session_store.rb

但一定要运行

fgrep old_name . -iR

或类似的东西首先检查项目中是否存在不应替换的old_name。

修改

当然,您需要安装replace命令。

考虑到你的appname将是CamelCased,所以也许你必须尝试一些不同的变体,比如OldName vs. NewName。

答案 5 :(得分:0)

当您想要或必须生成与应用程序名称同名的模型或脚手架时,您可能会发现自己必须重命名该应用程序。刚发生在我身上。在Rails 3.2.13上使用https://github.com/morshedalam/rename并且到目前为止没有问题。

答案 6 :(得分:0)

为此,我使用了旧的shell命令:

grep -r old_name * | cut -d: -f1 | xargs sed -i .bak 's/old_name/new_name/g'

此命令在找到old_name的所有文件中将old_name替换为new_name。但是,它会创建一个扩展名为“.bak”的备份文件。一旦你检查一切顺利,就可以轻松删除这些文件。

这样做的好处是,它不是'轨道版本依赖'。

答案 7 :(得分:0)

在轨道4上

添加

gem 'rename'

到Gemfile然后执行

bundle install

捆绑安装后

rails g rename:app_to name_of_app