11

我环顾了 Stack Overflow 和使用 Rails 进行敏捷开发,但找不到任何可以回答我需要的所有部分的东西。

我刚刚在 rails 中生成了一个 Cow 模型。显然,Rails 使用了牛(“kine”)的过时复数形式,所以当我创建该模型时,它构建了一个 Kine 迁移:

class CreateKine < ActiveRecord::Migration
  def change
    create_table :kine do |t|
      t.string :name
      t.string :farm
      t.string :breed

      t.timestamps
    end
  end
end

我知道我可以进入模型的 .rb 文件并将 set_table_name 返回到 cow,但我担心相关的控制器。如果我创建一个 Cows 控制器,它不会同步吗?

我如何让一切都成为牛/牛?谢谢。这是我的第一个应用程序之一,我已经对管理控制器模型关联感到困惑,所以这个变形问题没有帮助。

4

2 回答 2

26

这里创建一个变形是一个例子:

配置>初始化程序>inflections.rb

ActiveSupport::Inflector.inflections do |inflect|
  inflect.irregular 'cow', 'cows'
end
于 2012-09-19T04:55:13.950 回答
2

尝试重命名表:

class RenameKineToCows< ActiveRecord:Migration

  def up
    rename_table :kine, :cows
  end 
  def down
    rename_table :cows, :kine
  end
end

将你的 app/models/kine.rb 重命名为 cow.rb 并编辑文件

class Cow < ActiveRecord::Base

  self.table_name = 'Cow'
end

将你的 app/controllers/kine_controller.rb 重命名为 cows_controller.rb 并编辑文件

class KineController < ApplicationController 

class CowsController < ApplicationController

并编辑 config/routes.rb

resources :kine

resources :cows
于 2012-09-19T06:09:22.043 回答