11

StackOverflowと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コントローラーを作成すると、同期しませんか?

すべてを牛/牛にするにはどうすればよいですか?ありがとう。これは私の最初のアプリの1つであり、コントローラーとモデルの関連付けを管理することですでに混乱しているため、この屈折の問題は役に立ちません。

4

2 に答える 2

26

ここに語尾変化を作成する例を示します。

config> initializers> 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 に答える