1

je suis en train d'obtenir ma tête autour de la meilleure façon de développer une application en rubis sur des railsrails projet aide

j'ai un système de création de ducument que pour chaque document a plusieurs associations-à-dire le texte docs, images, accessoires en option etc. J'ai créé ce système maintenant pour faire CRUD. La prochaine chose que je veux faire est que chaque document puisse être traduit en plusieurs langues et chaque document doit être versionné et audité avec ce qui a changé quand et qui l'a fait etc. J'ai aussi besoin de pouvoir cloner un document. document pour un autre utilisateur afin qu'il puisse ensuite l'éditer pour lui-même et avec toutes les fonctionnalités de version et d'audit ci-dessus.

J'ai regardé Globalize2, acts_as_audited, acts_as_versioned, paper_trail et deep_clone et j'ai besoin de chacun d'eux!

S'il vous plaît quelqu'un peut-il m'aider avec comment ou quelle est la meilleure méthode de développement de cette application? Y a-t-il de meilleurs plugins plus adaptés à utiliser? peuvent-ils être utilisés les uns avec les autres? et quel serait le meilleur processus pour le mettre en place?

toute aide serait grandement appréciée.

grâce Rick

Répondre

0

Il semble que vous avez une bonne compréhension de la structure de base que vous voulez et avez étudié des solutions de rechange.

Premier passage de ma lecture: Vous avez un modèle Document, probablement avec une association polymorphe à un modèle Asset. En y réfléchissant, un document n'est qu'un type d'actif, de sorte qu'on peut hériter de l'autre - peut-être un héritage de table unique. De là, ajoutez acts_as_versioned pour faire face à .... eh bien, versioning. Cela devrait également être en mesure de vous donner les différences entre les différentes versions, assurez-vous simplement d'enregistrer le user_id avec le changement. Je ne suis pas sûr que Globalize ou i18n vous aidera ici, car ils sont plus orientés vers la traduction du site Web lui-même avec un contenu raisonnablement statique, pas des documents très dynamiques comme vous avez affaire. Je voudrais laisser des traductions aux utilisateurs et utiliser i18n pour présenter différentes traductions du site web lui-même.

Le clonage d'un document ne devrait pas être trop difficile - il suffit de créer un nouveau document et de remplir les informations qu'il contient. Vous aurez probablement besoin d'un champ cloned_from_id et de construire un auto référentiel has_many dans le modèle.

Eh bien, ce sont les pensées qui me viennent à l'esprit.

1

merci pour votre réponse askegg

la chose est acts_as_version ne comprend pas vos modèles relations et j'ai besoin de la version de chaque modèle de document avec les enfants modèles asscociated?

Donc, fondamentalement, si je n'utilise pas Globalize, mes documents transplacés ne seront que d'autres versions, mais dans une langue différente. Est-ce exact ? Je pensais que c'est ce que Globalize fait?

merci beaucoup rick

0

Je pensais que vous pourriez traiter chaque image, document, pdf, tout comme des actifs distincts, chacun avec leurs propres versions - fonctionnant indépendamment de tout autre.Si vous avez besoin de cloner un document et que ce sont des enfants, vous devrez alors parcourir les enfants et les cloner ainsi que les enfants de leurs enfants.

Globalize (ou toute autre plateforme de traduction) n'est vraiment bon que pour les instructions set/simple. En raison de problèmes de syntaxe et de grammaire, je ne m'attendrais pas à ce qu'il soit capable de réaliser de bonnes traductions entre les langues. Les humains sont grands à cela.

Il me semble que vous pourrait vouloir penser à utiliser Git comme un magasin de documents. Cela vous donne un versionnement complet du document avec des modifications de suivi. Voir this presentation pour quelques idées. Ne vous inquiétez pas pour tous les détails techniques - pensez simplement à ce que cela peut faire pour vous. Les bonnes choses commencent environ 15 minutes. Le Grit Ruby library can be found here.