2016-12-07 1 views
1

내 레일 5 응용 프로그램에서 세 가지 모델을 가지고 ... 내가 뭘하고 싶은 사람의 "쇼"보기에 메모를 만들 수 있습니다 , 메모는 그 사람과 내가 메모를 첨부하도록 선택한 다른 사람에게 자동으로 연결됩니다. 나는 내 "쇼"섹션에서레일 has_many : 통해 부모 "쇼"보기에 대한 연관 및 관련 모델

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 

을 (테이블을 가입)

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

사람 주에 일어나서 여기 어디에

입니다 내 "사람들"컨트롤러 나는 th 전자 다음

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

이것은 내 개인 기록에 새 메모의 내가 페이지를 열 때마다 가입 만들고있다 (분명히 내가 단지 원하는 내가 만든 노트에 일어날 가입 할 수 있습니다.)

나는 이것을 "show"뷰의 부분적인 모달로 렌더링했다. ("end"와 submit 버튼이 있지만 3 divs 사이에 있고 그것들이 문제의 원인이 아니라는 것을 나는 안다. 그래서 나는 그렇지 않았다. 포함 해주십시오. :

<%= 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

도움 주셔서 감사합니다. Daniel, 오류가 없습니다. 문제는 입니다. 1. 올바르게 수행하는 법을 모르겠습니다. 2. 사람 기록을 열 때마다 메모 기록 (및 그 사람과의 연관성)이 자동으로 생성됩니다 ... – LeahPleurodon

답변

0

내가 올바르게 이해 해요 경우, 별도의 노트 컨트롤러를 원하는 노트 작성을 처리 할 수있는 조치를 만듭니다. 그런 다음 People 쇼보기에서 NotesController # create에 제출하는 양식 및 입력 필드를 추가 할 수 있습니다.

+0

메모 컨트롤러가 있는데, 나는 "쇼"페이지에서 해당 메모를 만들 수 있습니다. 사람들이 모델. 그러나 그 사람을 메모에 자동으로 연결할 수는 없습니다. – LeahPleurodon

+0

'@person.notes << @ notep'은 당신의 쇼 방법에 속해 있지 않습니다. NotesController # create에 속합니다. – luckyruby