我有一个使用以下命令创建的Ruby on Rails应用程序:
rails new old_name -d mysql
现在我想将应用程序名称更改为new_name
。
仅更改应用程序文件夹名称是不够的,因为例如,还必须更改数据库名称(从old_name_development
到new_name_development
)。我想知道自动生成的文件中是否还有其他地方需要更改。
是否有用于更改应用程序名称的内置命令?
答案 0 :(得分:70)
在Rails 3中,以下文件中引用了应用程序名称:
答案 1 :(得分:32)
有一个Rails插件可以帮到你。超级方便。
答案 2 :(得分:9)
在Rails 3中,应用程序类在config / application.rb中定义,并在环境文件(config / environment.rb,config / environments / * .rb)和config / routes.rb中引用。我认为就是这样,但如果错过了一个,你应该很快从rails服务器中找到它。 :)
那就是说,除非你有一个非常具体的理由想要改变它,否则我不会打扰。不会以任何其他方式影响应用程序。
答案 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