Подтвердить что ты не робот

Неправильное плюралирование модели в рельсах

Я оглянулся вокруг Qaru и Agile Development с Rails, но не смог найти ничего, что отвечало бы на все части, которые мне нужны.

Я только что создал модель Cow в рельсах. По-видимому, Rails использует устаревшее множественное число коровы ( "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, не будет ли он синхронизироваться?

Как я получу все, чтобы быть Коровой/Коровой? Благодарю. Это одно из моих первых приложений, и меня уже путают, управляя ассоциациями модели контроллера, поэтому эта проблема с перегибами не помогает.

4b9b3361

Ответ 1

Создайте перегиб, вот пример:

конфигурации > Инициализаторы > inflections.rb

ActiveSupport::Inflector.inflections do |inflect|
  inflect.irregular 'cow', 'cows'
end

Ответ 2

Попробуйте переименовать таблицу:

class RenameKineToCows< ActiveRecord:Migration

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

Переименуйте свое приложение /models/kine.rb в cow.rb и отредактируйте файл

class Cow < ActiveRecord::Base

  self.table_name = 'Cow'
end

Переименуйте приложение/контроллеры/kine_controller.rb на cows_controller.rb и отредактируйте файл

class KineController < ApplicationController 

к

class CowsController < ApplicationController

и отредактируйте config/routes.rb

resources :kine

к

resources :cows