2012-04-28 4 views
1

私はRails 3で作業しています。シラバスを作ったUserというモデルがあります。シラバスの "共同制作"機能を追加したいので、元の作者は別のユーザーを招待してコンテンツを変更することができます。"共同作者"機能をRails Appに追加する最も良い方法は?

次のうち、どのオプションが意味がありますか? Syllabus.authorはシラバスに追加の属性を作成し、その作成者

  • のすべてを含む配列になるように、著者は配列属性を属性作る

    1. (もっと良いものがあれば、私に知らせてください)最初のものは、より理にかなっている場合は、coauthor1など、coauthor2

    は、あなたは、特に私はそれ配列属性になるだろう方法を説明することができ、後で追加の著者を挿入しますか?

    私が第2の選択肢を検討していた理由の1つは、原著者と他の共著者との区別が可能で、おそらく元の著者だけがシラバスを削除できるようにし、

  • 答えて

    1

    また、このようなテーブルをリンクすることができます:

    autorhs_syllabus 
    ---------------------- 
    id 
    author_id integer 
    syllabus_id integer 
    original_author boolean 
    
    +0

    ありがとうございます!だから誰かが特定のシラバスの作者であるかどうかをどうやって確認するのだろうか?私はsyllabus.idを見つけなければならないでしょう、そして、現在のユーザがauthors_syllabus.syllabusと同じ行にいるかどうかを見つけますか?それは私の頭の中で半分意味をなさないが、私は今脳のおならを持っている。 – kibaekr

    1

    あなたのデータベースを正規化する必要があります。著者とシラバスのために別々のモデルを持ち、has_many_through関係でそれらをリンクしたいと思う。リンクテーブルには、特定の関係に関する追加情報(たとえば、作成者が元の著者かどうかなど)を含めることができます。

    関連する問題