0

クラスの人物とクラスの科目があります。現時点では、それらはまったく接続されていません。ユーザーは、リストから対象を選択して調査することしかできません。ここで、ユーザーがサブジェクトに割り当てられるようにしたいので、ユーザー クラスにはサブジェクトを格納できるリストが必要です。...そして、主題を人にマッピングするテーブル.. (m to n)

私は Ruby on Rails の経験があまりなく、これを行おうとするとアプリケーションが破壊されるのではないかと心配しています。これまでのところ、それを行うためのコマンドがあることがわかりました( sth. like $ rails generate migration AddSubjectsToPersons)が、それらが正確に何をするのかわかりません。たとえば、モデルまたはコントローラークラスに触れます..はい、何かが削除された場合前に書いた?、そうでない場合 - レッスンと呼ばれるフィールド (リスト) をモデルに追加するだけで十分で、データベースへの接続が自動的に検出されますか?

4

2 に答える 2

0

コマンドを使用して移行ファイルを生成しましたrails generate migration CreatePersonsSubjects。名前はアルファベット順にまとめられています (規則)。このコマンドの結果は、データベース テーブルを変更するコードを入力できるスケルトンになります。これは「上」の部分に行きました:

create_table :persons_subjects, :id => false do |t|
      t.integer :person_id, :null => false
      t.integer :subject_id, :null => false
    end 

「ダウン」部分では、これらのアクションを元に戻すことができます。

   drop_table :persons_subjects

最後に、人物クラスにフィールドを追加しました (ちなみに、人物クラスにのみ。ただし、件名にも同様の行を追加できます/追加する必要があります)。その名も慣例。

  has_and_belongs_to_many :subjects

サブジェクトは、ビューでたとえば次のように使用できます。

<div>Courses taken:
  <ul>
    <% @person.subjects.each do |subject| %>
      <li><%= link_to subject.name, subject, :class => 'action' %></li>
    <% end %>
  </ul>
</div>
于 2012-12-12T00:26:09.633 に答える