Я создаю модель в Ruby on Rails, которая будет действовать как файловая система. У вас будут ресурсы (например, файлы), которые могут быть папками или самими файлами. Как я могу создать команду для этого?
Asset
id (unique auto-incrementing number)
name
is_directory (bool)
user_id (id of the owner)
parent_asset_id (id of parent directory, or null if under the root)
access_token (randomly generated token, used to send shareable links)
contents
Я думаю что-то вроде:
rails generate model Asset
name:string
is_directory:boolean
user_id:integer
parent_asset_id:integer
access_token:string contents:??
У меня есть несколько вопросов:
Какая разница между blob и longblob против mediumblob против longtext и т.д., и какую я хотел бы использовать? (Активы в основном текстовые ... не уверен, какой будет максимальный размер)
Является ли parent_asset_id хорошим соглашением об именах, или есть что-то еще, что заставило бы Rails дать мне какой-нибудь секретный соус, аналогично тому, почему я выбрал имя user_id (в соответствии с моделью User)?
Есть ли способ объявить случайное строковое значение по умолчанию для access_token? (Маркер доступа будет использоваться для разделяемой ссылки на актив)
Что-нибудь еще, что я пропускаю?
Это подробный вопрос, поэтому я надеюсь, что он послужит примером для тех, кто хочет внедрить что-то вроде файловой системы в RoR.
Очевидно, что если вы действительно хотели реализовать файловую систему, вы бы использовали настоящую файловую систему или Amazon S3 ... но если вам нужна облегченная файловая система в RoR, это кажется как лучший подход.