@si13n

Как органиховать CRUD приложение с несколькими таблицами на Rails?

Есть база на MySQL с несколькими таблицами (task, comment, issue) и связями.
Есть Rails приложение, которе коннектится к данной базе.
Необходима вьха, которая будет отображать список задач (что-то типа таск-менеджера). Здесь данные со всех таблиц. По клику на строку - должны открываться подробности (show/edit). А далее если через f. буду записывать данные в разные таблицы. Но если я отображаю главную вьюху через find_by_sql и далее ищу по всем таблицам через join, то у строки нет id и не получается открыть show/edit экшн. Или как отображать в одной таблице данные через each с нескольких таблиц?
Может я выбрал неправильное направление...? Можете посоветовать как это организовать все лучше?
Нужны ли отдельные модели/контроллеры для каждой таблицы? Нужно ли описывать все foreign_key и прочее... или хватит self.table_name = 'table_name' ?
  • Вопрос задан
  • 308 просмотров
Решения вопроса 1
inf
@inf
DevOps Engineer
Курить нужно в сторону nested model form

Модели для каждой таблицы всё равно придётся делать в том числе для валидации. Контроллер не обязательно.
foreign_key для целостности связей на уровне БД напрямую к форме не относится, но в целом лучше его применять чем нет.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@chronic86
Ruby on Rails junior
Если речь идет о чистом CRUD, то советую вам посмотреть в сторону связки rails+netzke+extjs быстро и эффективно.
netzke.org на сайте есть демо, можете посмотреть как оно выглядит и работает.
Опять же все зависит от ваших задач, если за CRUD предполагается много кастомной логики то проще писать с нуля чем кастомизировать готовое решение.

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы