Создание таблицы в Ruby on Rails - PullRequest
0 голосов
/ 21 апреля 2019

У меня есть эти три таблицы, которые ссылаются друг на друга с помощью внешнего ключа.

create table category(cat_id int primary key auto_increment, cat_name varchar(30),cat_label varchar(30));

create table product(prod_id int primary key auto_increment, cat_id int(11), prod_name varchar(100),prod_desc varchar(100), foreign key (cat_id) references category(cat_id))

create table sales(sales_id int primary key auto_increment, prod_id int(11), sales_name varchar(100),sales_desc varchar(100),
foreign key(prod_id) references product(prod_id));

Поскольку я новичок в Rails, я знаю, как создать просто таблицу с использованием скаффолда, как показано ниже.

rails generate scaffold category cat_id:integer cat_name:string cat_label:string 

Как мне создать три вышеуказанные таблицы в Rails?

Ответы [ 2 ]

1 голос
/ 21 апреля 2019

вы можете начать с записи в консоли следующих строк:

rails g model Category cat_id:integer cat_name:string car_label:string

rails g model Product prod_id:integer cat_id:integer prod_name:string prod_desc:string 

это сгенерирует ваши две таблицы (вы должны попытаться создать таблицу Sales самостоятельно), вы можете пройти через это: https://guides.rubyonrails.org/getting_started.html#generating-a-model, это в основном покрывает все, что вам нужно.

Затем, чтобы настроить внешние ключи, вы должны пройти через ассоциации, которые вы также можете найти здесь: https://guides.rubyonrails.org/association_basics.html.

Вы должны внимательно прочитать это, потому что монастырь Rails имеетмного уникальных вещей, которых нет в других языках программирования.

0 голосов
/ 21 апреля 2019

Вы можете сделать это с терминала

rails g model category name
rails g model product name category:references
rails g model sale name product:references

Он сгенерирует 3 миграции с 3 таблицами и ссылается друг на друга с помощью внешних ключей.

Также вы можете вручную написать все необходимое за одну миграцию.

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