我用Rails查看了Stack Overflow和Agile Development,但找不到任何可以解决我需要的所有部分的东西。
我刚刚在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回牛,但我担心相关的控制器。如果我创建一个Cows控制器,它会不同步?
如何让一切都成为牛/奶牛?谢谢。这是我的第一个应用程序之一,我已经因管理控制器模型关联而感到困惑,因此这个变形问题无济于事。
答案 0 :(得分:26)
这里创建一个变形就是一个例子:
配置&GT;初始化&GT;是inflections.rb
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 'cow', 'cows'
end
答案 1 :(得分: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