База данных Ruby on Rails: как упомянуть отношение внешнего ключа, изменив файл app / model / table.rb, как узнать, что они реализованы - PullRequest
1 голос
/ 08 февраля 2012

Я новичок в RoR. Я использовал команду «rails generate model ServiceConfigs» для генерации таблицы. так что команды, как показано ниже рельсы генерируют модель ServiceConfigs конфиги: строка грабли дБ: мигрировать - можете увидеть приложение / db / service_config.rb. Теперь отредактировал файл service_config.rb для добавления 2 столбцов, который имеет отношение внешнего ключа к таблице служб. Так вот код

class ServiceConfigs < ActiveRecord::Base
  belongs_to :service, :dependent => :destroy 

  validates_presence_of :configs
end

Теперь, когда я вхожу в систему, чтобы подчеркнуть базу данных, и смотрю на таблицу, я не вижу отношения внешнего ключа в схеме таблицы. Что не так / что мне еще нужно сделать?

высоко ценю ваше время и помощь Кришна

1 Ответ

1 голос
/ 08 февраля 2012

Итак, несколько замечаний для вас, когда вы начинаете здесь: во-первых, я бы назвал вашу модель в единственном числе, как если бы вы описывали один ее экземпляр: ServiceConfig и в том случае, когда она принадлежит службе, вы можете подумать о другом имени вместе.

Во-вторых, validates_presence_of предполагает, что у вас есть это поле, поэтому, во-первых, я бы удалил проверку, пока вы не узнаете, что в вашей БД есть этот столбец и что миграция работает. Вы можете убедиться в этом, просмотрев файл миграции и подтвердив, что столбец создается.

Вы также можете определить отношения "путём рельсов" в вашей миграции:

http://guides.rubyonrails.org/association_basics.html

create_table :service_configs do |t|
  t.string :configs
  t.references :service
  t.timestamps
end

Обновление

Если вы хотите перезапустить определенный запуск миграции:

rake db:migrate:redo VERSION=20100421175455

Вы можете взглянуть на свою схему, чтобы увидеть, в какой миграции вы сейчас находитесь. И вы также можете взглянуть на схему, чтобы увидеть, как должна выглядеть ваша БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...