ruby-on-rails - 如何重命名项目中的 Rails Controller 和模型

标签 ruby-on-rails model controller rename

我启动了一个 Rails 应用程序,一切正常。但现在,我想重命名 Controller 和关联的模型:

我想将 Corps Controller 更改为 Stores,并且模型的 Controller 也是如此(没有 Final s)。

在谷歌上查看,人们建议销毁然后重新生成 Controller 和模型。问题是它会删除每个文件的实际代码!

解决办法是什么?

最佳答案

这是我要做的:

创建迁移以更改表名称(数据库级别)。我假设您的旧表名为corps。迁移内容将是:

class RenameCorpsToStores < ActiveRecord::Migration
  def change
    rename_table :corps, :stores
  end
end

更改模型文件名、模型类定义和模型关联:

  • 文件重命名:corp.rb -> store.rb
  • store.rb代码:将class Corp更改为class Store
  • 重命名所有模型关联,例如 has_many :corps -> has_many :stores

更改 Controller 文件名和 Controller 类定义:

  • 文件重命名:corps_controller.rb -> stores_controller.rb
  • stores_controller.rb代码:将class CorpsController更改为class StoresController

重命名 View 文件夹。从军团商店

config/routes.rb 文件中的路径进行必要的更改,例如 resources :corps -> resources :stores,以及确保代码中的所有引用从corps更改为stores(corps_path,...)

记住运行迁移:)

如果前面的方法不可行,请尝试删除 db/schema.rb 并执行:

 $ rake db:drop db:create db:migrate

关于ruby-on-rails - 如何重命名项目中的 Rails Controller 和模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11924124/

相关文章:

ruby-on-rails - 用于 Rails 4 的 mobile_fu

php - 无法在 Codeigniter 中定位指定类 : Session. php

java - 关于model-view-controller的一些疑惑

php - laravel 登录 View 不执行任何操作

javascript - Rails - 为什么 ajax 不发送参数到 GET 请求

ruby-on-rails - Brew 更新中断 openssl

ruby-on-rails - 不同的前缀 : "/" and "http:/localhost:3000" with devise

sql - 在 codeigniter 中为实时站点配置数据库配置不断收到 500 内部服务器错误

php - 在 CakePHP 框架内自动创建数据库表

php - 将 $id 从 Blade 传递到 Controller 方法显示 Laravel 4