2010-05-06 1 views
1

나는이 기능을 작동시키기 위해 꽤 오랜 시간 동안 애를 썼다.항목을 추가하는 동안 사용자가 쉼표로 구분 된 범주 목록을 추가하고 연결하도록하는 방법은 무엇입니까?

사용자가 사진을 업로드 할 때 카테고리를 선택할 수있게하려면 추가 카테고리를 쉼표로 구분하여 지정할 수 있기를 바랍니다. 사진을 작성/찾고 연관시킵니다. 나는 사진 모델에서 attr_accessor : new_categories를 사용하여이 작업을 수행 했었지만 열이 없어도 거기에있는 것은 Paperclip과 Exifr를 손상시킵니다. 분명히 이미지 업로드와 EXIF ​​데이터 검색은 사진 웹 사이트에서는 매우 중요하지만 사진을 업로드하는 동안 카테고리를 추가 할 수는 없다는 것이 엉덩이의 고통입니다.

방법 지금까지 시도했다 :

  • new_categories에 대한 필드를 추가 attr_accessor 사용. 보석을 부수기.
  • Ajax 하위 양식을 사용하여 범주를 추가하십시오. Formtastic은 그것을 처리 할 수 ​​없습니다.
  • new_categories에 대한 열을 사진 모델에 추가. 그것은 효과가 있지만 그것은 끔찍합니다.

중첩 된 양식을 사용하지 않았지만이를 가로 채고 정상적으로 처리하지 못하게해야합니다. http://imgur.com/rD0PC.png

그리고이 범주에 연결하는 데 사용하는 기능 :

def process_new_categories 
    unless self.new_categories.nil? 
     for title in self.new_categories.split(",") 
      self.categories << Category.find_or_create_by_title(title.strip.capitalize) 
     end 
    end 
end 

사람이이 작업을 수행하는 방법에 관한 아이디어를 가지고 있음을

는 여기에 내가 달성하기 위해 노력하고있어 예입니까?

답변

1

대략 내가 양식 코드를 볼 수 있다면 쉽게 도움이 될 것입니다. Formtastic에 대해서는 아무 것도 모른다. 그러나 이것은 기본 레일즈에서 매우 쉽고 매우 공통적이다.

간단하게 폼에 텍스트 필드를 추가

<%= text_field_tag :new_categories %> 

를 컨트롤러에서 :

#changing your method to take a parameter here 
#and moving method to the model object 
model_obj.process_new_categories(params[:new_categories]) 
+0

아하, 어젯밤에 그걸 시도하는 데 중도에 도달했지만 뭔가에 정신이 생겨 다른 경로에서 벗어났습니다. 모델이 업데이트 된 후에 실행되는지 확인하고 모델 객체를 함수에 전달하면 작동 할 수 있다고 생각합니다. 어젯밤에 그 일을하지 않은 이유를 잊지 않는 한. 내가 확인한 후에 다시 볼게! :) – robotmay

+0

좋은 생각, 모델 자체로 메소드를 옮겼으므로 업데이트 할 수있는 올바른 컨텍스트를 가질 수 있습니다. – MattMcKnight

+0

테스트를 실행했는데 효과적입니다. Exifr에서는 아무런 문제가 없습니다. 대단히 고마워요 :) – robotmay

1

체크 아웃이 스크린 캐스트 그것은 태그를하다 클래스를 만드는 방법을 보여줍니다 http://railscasts.com/episodes/167-more-on-virtual-attributes 재 작성하려는 카테고리 클래스와 유사합니다.

+0

그게 거의 달성하려고하는거야 - 내가 Paperclip 및 Exifr와 함께 작동하는지 확인해야합니다. 고마워, 나는 어떻게 든 Railscast를 놓쳤다. – robotmay

+0

아무런 문제가 없지만 잠시 전에 작성되었지만 새로운 버전의 레일은 has_and_belongs_to_many 관계를 더 잘 설명하는 방법이라고 생각합니다. – Schneems

관련 문제