2016-12-07 27 views
1

私のレール5つのアプリケーションに3つのモデルがあります...私がしたいのは、人の "ショー"ビューでノートを作成できることですノートは自動的に、その人とノートを添付するために選択した他の人にリンクされます。Rails has_many:親の "show"ビューでの関連付けと関連モデルの作成

私は

class Note < ApplicationRecord 
    has_many :person_notes 
    has_many :people, through: :person_notes 
    accepts_nested_attributes_for :person_notes 
end 

者注(テーブルに参加)の私の "ショー" セクションで

class PersonNote < ApplicationRecord 
    belongs_to :person 
    belongs_to :note 
end 

class Person < ApplicationRecord 
    has_many :person_notes 
    has_many :notes, through: :person_notes 
    accepts_nested_attributes_for :person_notes 
    accepts_nested_attributes_for :notes 
end 

に立ち上がったのはここです私が持っている私の "人"のコントローラーe。次:

def show 
    @notep = Note.new() 
    @person.notes << @notep 
end 

これは私の個人レコードに新しいノートの私がページを開くたびに参加作成された(明らかに私が唯一の希望、私が作成したノートに起こることを参加してください。)

私は私の "ショー"ビューの一部としてモーダルでこれをレンダリングしました( "終了"ボタンとサブミットボタンがありますが、3つのdivの間にあり、問題の原因ではないことを知っています。それらを含める:

<%= simple_form_for(@notep, remote: true) do |f| %> 
<%= f.error_notification %> 

    <%= f.input :subject %> 
    <%= f.input :note %> 
    <%= f.input :date, html5: true %> 
    <div class="input-field"> 
    <%= f.check_box :isalert, :id => "alert" %> 
    <%= f.label :isalert, :for => "alert" %> 
    </div> 

    <div class="input-field"> 
    <%= f.check_box :archived, :id => "archived" %> 
    <%= f.label :archived, :for => "archived" %> 
    </div> 

    <div class="input-field"> 
    <%= f.check_box :deleted, :id => "deleted" %> 
    <%= f.label :deleted, :for => "deleted" %> 
    </div> 
    <%= f.input :datecreated, html5: true %> 
    <%= f.input :user_id %> 


    <%= f.simple_fields_for :person_notes do |builder| %> 
    <%= builder.association :person, label_method: :lstfstfullname %> 
    <%= builder.input :deleted %> 
    <%= builder.input :datecreated, html5: true %> 
    <%= builder.input :user_id %> 
    <% end %> 

私はおそらく私はnewbだと言うことができますが、私は得ることができるすべてのおかげです。

おかげで、

リア

+0

@person変数の人物レコードを正しく取得していることを確認してください。あなたは直面している特定のエラーを含めることができますか? –

+0

あなたの助けてくれてありがとうダニエル、私はエラーを取得していない...問題は 1.私はこれを正しく行う方法を知りません。 2.人物のレコードを開くたびに、メモレコード(およびその人への関連付け)が自動的に作成されます。 – LeahPleurodon

答えて

0

私はこれを正しく理解していた場合、あなたは別のノートコントローラをしたいと、ノートの作成を処理するためのアクションを作成します。 Peopleビューのビューでは、NotesController#createに送信するフォームと入力フィールドを追加できます。

+0

私はノートコントローラを持っています。人々のモデル。しかし、私はその人をノートに自動的にリンクすることはできません – LeahPleurodon

+0

'@person.notes << @ notep'はあなたのshowメソッドに属していません。これはNotesController#createに属します。 – luckyruby

関連する問題