如何重命名项目中的 Rails 控制器和模型

2024-03-10

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

我想改变Corps控制器到Stores模型也相同(没有最后的 s)。

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

解决办法是什么?


这是我要做的:

创建一个移民更改表名称(数据库级别)。我假设你的旧桌子叫corps。迁移内容将是:

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

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

  • 文件重命名:corp.rb -> store.rb
  • Code of store.rb: 改变class Corp for class Store
  • 重命名所有模型关联,例如has_many :corps -> has_many :stores

更改控制器文件名和控制器类定义:

  • 文件重命名:corps_controller.rb -> stores_controller.rb
  • Code of stores_controller.rb: 改变class CorpsController for class StoresController

重命名视图文件夹。从corps to stores.

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

请记住运行迁移:)

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

 $ rake db:drop db:create db:migrate
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何重命名项目中的 Rails 控制器和模型 的相关文章

随机推荐

  • Promise.then() 返回 Promise { } [重复]

    这个问题在这里已经有答案了 函数 fetchData 返回一个承诺 然后我通过链接在generateURL函数中处理该承诺promise with then但是它返回 Promise 函数generateURL应该返回一个字符串我做错了什么
  • 从 pdf 中提取的细化表格 - Tabulizer

    我正在 R 中的 Tabulizer 的帮助下从 PDF 中提取一些表格 下面是其中一个表格的代码 library tabulizer location lt http napic jpph gov my portal web guest
  • 将消息从一个 Kafka 主题复制到另一个 Kafka 主题

    我想从生产集群中的 Kafka 集群 主题进入开发环境中的另一个 Kafka 集群 以进行可扩展性和回归测试 对于鸭磁带解决方案 我级联了 Kafka 消费者和生产者 但我的直觉告诉我应该有更好的方法 但是 我还没有找到任何好的解决方案 谁
  • 将 jQuery Validation 插件中的验证方法与“or”而不是“and”结合起来

    在 jQuery 验证插件中 有几个方法可以执行相同的操作 但针对不同的区域设置 例如dateISO and dateDE 两者都验证日期格式 如何组合这些以便输入元素接受either 假设我有一个
  • 如何使用 app.config 上的加密连接字符串与 Windows 窗体上的向导生成的 Dataset.xsd

    我正在开发一个 MDI 应用程序Visual Studio 2013 NET 4 5 and Oracle 开发工具最新发布 我需要创建一个主窗体 然后它将成为许多不同窗体的容器 每个窗体都是不同的应用程序 该应用程序必须连接到不同的 Or
  • 我应该在 Django 项目中使用 Celery 还是 Carrot?

    我有点困惑我应该使用哪一个 我认为两者都可以 但其中一个比另一个更好或更合适吗 http github com ask carrot tree master http github com ask carrot tree master ht
  • CSS :lang 伪类与属性选择器

    我想编写一个 css 规则 该规则将使用不同的引号来表示不同语言的引号 我知道lang是一个HTML属性 那么为什么我不能使用下面的css属性选择器呢 下面的代码不应该针对所有q and blockqutote元素内部的元素lang属性具有
  • Tensorflow:如何将自定义输入插入现有图形?

    我已经下载了一个实现 VGG16 ConvNet 的张量流 GraphDef 我用它来执行以下操作 Pl images tf placeholder tf float32 None 448 448 3 name images batch x
  • 如何将 Func 转换为 Predicate

    是的 我见过this https stackoverflow com questions 665494 c why funct bool instead of predicatet但我找不到我的具体问题的答案 给定一个 lambda测试La
  • 会话cookie=cookie?

    我想知道 cookie 和会话 cookie 是否相同 饼干就是饼干 会话 cookie 可以指以下两种情况之一 未指定超时时间的 cookie 浏览器关闭后将被丢弃 IE 浏览器只会为当前的 浏览会话 保留它 包含会话 ID 的 cook
  • Log4Net 多个项目

    我在用log4net在我们的解决方案之一中 该解决方案包含多个项目 每个项目一个单元测试项目 我正在使用中描述的方法这个帖子 http blog falafel com Blogs josh eastburn 2012 04 10 usin
  • Mathematica 中的语法着色

    用户定义的函数符号如f in f x 2 x 或变量符号 例如lotto in lotto Table 2 10 自动着色 在 M8 上的语法着色中 没有为此提供选项 仅限未分配值的局部变量或全局符号 这并不完全是您所要求的 但可能对您有用
  • Apache POI 使用 HSSF 比使用 XSSF 快得多 - 接下来做什么?

    我在解析时遇到了一些问题 xlsx带有 Apache POI 的文件 我得到java lang OutOfMemoryError Java heap space在我部署的应用程序中 我只处理 5MB 以下的文件和大约 70 000 行 因此
  • Silverlight 中的动画边距变化

    我正在 Silverlight 中对边框大小进行动画调整 但是我还需要逐渐删除其周围的边距 当前为 50 Blend 似乎不会为边距变化生成补间 它只是一次性从 50 跳到 0 有办法实现这一点吗 问题是边距实际上是 System Wind
  • 普罗米修斯时间序列在没有更新的情况下持续多长时间

    如果我向 Prometheus 发送一个仪表 则有效负载具有时间戳和如下值 指标名称 标签 值 2 0 16239938546837 如果我在普罗米修斯上查询它 我可以看到一条连续的线 如果不发送相同指标的有效负载 线路就会停止 几分钟后发
  • 从Firebase android获取孩子ID [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我对 Android 开发非常陌生 我正在使用 Firebase 开发一个 Android 应用程序来获取一个人的姓名和地址 我的数据
  • 如何在 javascript 中将日期时间字符串的格式从使用斜杠改为使用连字符?

    我有一个以下格式的输入日期字符串 yyyy mm dd 这是我想要的输出日期字符串格式 yyyy mm dd Javascript 有内置的方法可以做到这一点吗 Use 字符串替换 https developer mozilla org e
  • 如何使用 Javascript Date 对象计算东部时间?

    我正在开发一个涉及 Javascript 的个人项目 作为该项目的一部分 我想获取当前日期 包括时间 并相应地显示它 没什么大不了的吧 嗯 deal是我想返回时间和日期东部夏令时间 无论 IP 在世界哪个地方 如果这是不可能的 您建议采用哪
  • C# 多屏幕视图单一表单

    我用 C 创建了一个 GUI 它应该如下所示 主屏幕上有两个按钮 当Button1被单击我不想使用打开新表单form2 show 但在保持相同形式的同时 我想更改显示 我通过隐藏 GUI 元素并根据需要显示其他元素来完成此操作 它按照我想要
  • 如何重命名项目中的 Rails 控制器和模型

    我启动了一个 Rails 应用程序 一切正常 但现在 我想重命名控制器和关联的模型 我想改变Corps控制器到Stores模型也相同 没有最后的 s 在谷歌上查看 人们建议销毁然后重新生成控制器和模型 问题是它会删除每个文件的实际代码 解决