Rails - установить ID на 1 для каждой новой ассоциации? - PullRequest
0 голосов
/ 10 апреля 2019

Это более теоретический вопрос, я долго размышлял над этим видом "проблемы" и не мог найти реального ответа на этот вопрос.

Давайте начнем с этой простой настройки:

project.rb

has_many :tasks

и

task.rb

belongs_to :project

Теперь у каждого проекта может быть задание.

Представьте себе совершенно новую БД:

Если я создам новый проект (1) и 5 задач для этого проекта впоследствии, задача 1-5 будет связана с проектом 1, верно?

Теперь, если я создам еще один проект (2) и создам для этого проекта 5 новых задач, идентификатор будет начинаться с 6 и подниматься до 11.

Вопрос: возможно ли, чтобы идентификатор задач для второго проекта снова начинался с 1, хотя запись проекта 1-5 уже существует для проекта 1? По сути, я хочу, чтобы каждый проект имел своего рода «изолированные» задачи, чтобы каждая задача начиналась снова с идентификатора 1 для каждого проекта. Таким образом, было бы гораздо более организованным найти, например, задачу 23 для проекта 2 и задачу 23 для проекта 1, просто выполнив поиск по идентификатору.

Имеет ли это смысл?

Пожалуйста, дайте мне знать, если что-то не понятно.

Заранее всем спасибо как всегда!

Привет!

1 Ответ

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

Может быть разница между идентификатором БД и идентификатором, используемым для маршрутизации и отображения.

Например,

Вы можете использовать отдельное поле с именем displayed_id и указать там любое число. Вы можете установить ограничение, чтобы оно было уникальным по отношению к вашему project_id. Тем не менее, вы можете найти задачу, всегда выбирая project.tasks.find_by(displayed_id: params[:id])

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