Ответ 1
Создайте перегиб, вот пример:
конфигурации > Инициализаторы > inflections.rb
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 'cow', 'cows'
end
Я оглянулся вокруг 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, не будет ли он синхронизироваться?
Как я получу все, чтобы быть Коровой/Коровой? Благодарю. Это одно из моих первых приложений, и меня уже путают, управляя ассоциациями модели контроллера, поэтому эта проблема с перегибами не помогает.
Создайте перегиб, вот пример:
конфигурации > Инициализаторы > inflections.rb
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 'cow', 'cows'
end
Попробуйте переименовать таблицу:
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