重命名Ruby on Rails应用程序
有没有办法在Rails 2中重命名应用程序?
您可以使用https://github.com/morshedalam/rename重命名Rails 3应用程序
文件中必须重命名应用程序的位置数(Rails 3.1),否则您将无法启动服务器。 所以做以下事情:
1)重命名目录
2)在Application.rb文件中重命名module (yourapp)
。
3)在以下文件中重命名(yourapp)::Application
:
的environment.rb
的routes.rb
config.ru
Rake文件
初始化/ secret_token.rb
初始化/ session_store.rb
environments / test.rb,production.rb和development.rb
4)您还可以将config.database.yml.sqlite3中的数据库重命名为(yourapp)_development,(yourapp)_test等。在这种情况下可能需要重新加载数据库。 我使用yaml_db gem和rake db:reload
来做这个并且工作。
应该这样做。
我在重命名Rails 3应用程序时遇到了一些麻烦。 然后我找到了这个插件 ,它就像一个魅力。
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
定义的会话的字符串键,它采用默认值“_
只需重命名应用程序目录,仅此而已。 我做了几次,没有问题。
我写了以下脚本来做到这一点。 你也可以在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上创建了一个howtovideo。 http://youtu.be/dDw2RmczcDA