У меня есть несколько небольших сайтов типа «ROR», в основном «статического» типа, и я работаю над чем-то более глубоким, с чем у меня мало опыта…
Номенклатура БОЛЬШОЙ картинки.Аккаунты имеют много пользователей и проектов.У пользователей много проектов.пользователи добавляют много файлов и заметок в проекты ....
В конце мне нужно создать представление, где пользователи могут видеть свои проекты, файлы и заметки.В списке или таблице, похожих на созданное вручную «доказательство концепции», приведенное ниже:
Project1
Notes
note1
note2
note3
Files
file1
file2
file2
Users
user1
user2
Project2
Notes
note1
note2
note3
Files
file1
file2
file2
Users
user1
user2
Приведенный выше список будет сгенерирован с использованием некоторого встроенного рубина для цикла, но прежде чем я попаду в это, мне нужночтобы убедиться, что у меня есть правильные ассоциации моделей и вызовы.
Я пытаюсь получить НЕТ внешних ключей от всех моих таблиц, но я действительно путаюсь с мультимодельными лучшими практиками.Без внешних ключей, я думаю, мне нужна таблица соединения, которая могла бы быть моделью, использующей соглашение об именах "model1_model2"? И отношение модели ": through"?
моих моделей сейчас (это менялось много)являются:
Счет:
class Account < ActiveRecord::Base
has_many :projects
has_many :users
end
Пользователь:
class User < ActiveRecord::Base
has_one :account
has_many :projects, :through => :accounts
has_many :dataFiles, :through => :projects
has_many :notes, :through => :projects
end
Проект:
class Project < ActiveRecord::Base
belongs_to :account
has_many :users
has_many :datafiles
has_many :notes
end
DataFile:
class DataFile < ActiveRecord::Base
belongs_to :projects
belongs_to :users
end
Примечание:
class Note < ActiveRecord::Base
belongs_to :project
belongs_to :users
end
As youможет, вероятно, увидеть;Я запутался здесь!Я сделал кучу уроков и прочитал книгу;это мое первое приложение в реальном мире, которое состоит не только из статических страниц ...
Кажется, есть много способов сделать это.Я думаю, что я ищу какое-то экспертное руководство о том, какие модели мне следует использовать и как их подключать.
Будем очень благодарны за любые советы и рекомендацииСпасибо!