2011-04-19 3 views
0

안녕 얘들 아, 여기에서 첫 번째 질문.레일 : 텍스트 영역 사용 : has_many 관계

나는 제품을 위시리스트에 올릴 수있는 몇 가지 제품과 사용자를 보유하고 있습니다. 사용자는 여러 가지 용도로 많은 위시리스트를 보유 할 수 있습니다. 위시리스트에는 제품을 추가 할 수 있지만 추가 정보가 있습니다. 특정 제품의 양을 지정해야합니다. 이 논리는 포함에서 사용되며 수량 필드가 있습니다.

Class Wishlist 
    belongs_to :user # User class is irrelevant here 
    has_many :inclusions 
    has_many :products, :through => :inclusions 
    end 

    Class Product 
    has_many :inclusions 
    has_many :wishlists, :through => :inclusions 
    end 

    Class Inclusion 
    belongs_to :product 
    belongs_to :wishlist 
    end 

위시리스트는 텍스트 영역을 통해 편집해야합니다. 구문은 간단합니다 : 수량 제품 이름. 모든 사용자가이 구문을 사용합니다. 예를 들어, 위시리스트를 편집하면 다음과 같아야합니다

양식을 제출
<textarea> 
    1 Bicycle 
    4 Shoe 
    1 Telephone 
</textarea> 

는 모든 로직은 뒤에서 처리해야한다. 따라서 "1 전화"가 제거되면 포함을 파괴해야합니다. 한 줄이 추가되거나 수정되면 데이터베이스가 해당 텍스트 영역의 내용과 동기화되도록 해당 포함이 만들어 지거나 업데이트되어야합니다.

나는 높거나 낮게 조사했지만 이에 대한 해결책을 찾지 못했습니다. 미리 감사드립니다.

답변

0

이 나쁜 생각이지만, 당신이 당신의 자신의 실수로부터 배울시키는을 위해서 ...

  1. ... 당신의 텍스트 영역에 데이터가 기능을 포함하는 세터 방법을 속성 랩
  2. 는 관련 정보를 구문 분석 텍스트 영역의 각 행에서 ...
  3. 각각에 대해 원래의 setter 메소드를 호출하십시오.
  4. 게터에서 반대쪽을 수행하십시오.

여러분의 유효성 검사, 연결 등은 모두 여전히 작동하며 문제를 처리 할 수있는 논리가 깔끔하게 정리되어 나중에 문제가 발생할 경우 쉽게 제거 할 수 있습니다.