2013-08-02 2 views
1

두 모델이 있으므로 AnimalAnimalComment이라고 부릅니다. 그들은 다음과 같이 : 나는 Animal에 코멘트를 작성 지금다른 모델의 속성 레일 업데이트

class AnimalComment < ActiveRecord::Base 
    attr_accessible :comment, :num 
end 

class Animal < ActiveRecord::Base 
    attr_ accessible :species, :comment 
end 

은 내가 내 AnimalComment 모델의 :comment 필드에 그 주석을 추가 할 때. 이것이 어떻게 작동하는지의

내 비전은 내 animals/new 웹 페이지에 주석을 입력하고, 내가 Submit을 클릭하면 코멘트 GET의 내 AnimalComment 웹 페이지 내부의 필드로 추가가 표시됩니다.

희망적입니다. 어떤 아이디어?

+0

동물은 여러 의견을 가지고 있습니까? – Muntasim

+0

내 대답이 도움이 되었습니까? 아니면 다른 도움이 필요합니까? – Powers

답변

4

동일한 데이터를 두 위치에 저장하는 것이 맞는지 확실하지 않습니다. 모델과 관련이 있어야합니다 (예 : Animalhas_manyComments).

어쨌든 귀하의 요구 사항은 콜백으로 만족 될 수 있습니다.

class Animal < ActiveRecord::Base 
    attr_accessible :species, :comment 
    after_save :create_animal_comment 

    def create_animal_comment 
    AnimalComment.create(comment: self.comment) 
    end 
end 

after_save 방법은 Animal#create_animal_comment 방법에게 Animal 레코드가 생성 될 때마다 실행되도록 레일을 알려줍니다. self.commentAnimal 모델의 주석을 나타냅니다.

+0

감사합니다. 너무 오래 받아 들여서 유감입니다. – DashControl

+0

구문 오류 :'attar_accessible'는'attr_accessible'이어야합니다. – 0112

1

먼저 연관을 만듭니다. 그런 다음 AnimalComment 테이블에만 주석을 저장하십시오. 동물 모델에 delegate을 사용하여 액세스하거나 연결을 통해 가져옵니다.

관련 문제