2014-07-08 2 views
0

Active Admin 위에 구축 된 앱을 만들고 있습니다. 아이디어는 인터페이스와 같은 CMS를 사용하여 제어 및 업데이트/편집 할 수있는 백엔드를 갖는 것입니다. 거기에서 Active Admin에서 제어하고있는 데이터에 API를 구축하고 있습니다. 이 API를 사용하여 프런트 엔드에 Angular.js로 표시하고 있습니다.PaperClip을 사용하여 여러 모델을 처리하는 방법은 무엇입니까?

내가 겪고있는 문제는 Paperclip을 사용하고 있습니다. 사진/이미지는이 프로젝트에서 매우 중요하며 클립에서 데이터에 액세스 할 수있는 것도 중요합니다.

현재 사이트의 관리자 섹션에있는 경우 문제가 발생합니다. 두 개의 주요 섹션 (ProjectMember)을 설정했습니다. 다양한 필드를 설정하고 모든 것이 잘 작동하고 API를 생성 할 수있었습니다. 그런 다음 그림을 추가하면 모든 것이 망가졌습니다. 다음은 현재 설정 한 내용입니다.

project.rb (프로젝트 여러 이미지가)

class Project < ActiveRecord::Base 
    has_many :images 
end 

member.rb (1 개 이미지를 가짐)

class Member < ActiveRecord::Base 
    has_one :image 
end 

image.rb

class Image < ActiveRecord::Base 

belongs_to :member 
belongs_to :project 

# PaperClip 
has_attached_file :image, :styles => { :small => "100x100", :medium => "200x200", :large => "300x300" }, 
       :url => "/path/to/images/url", 
       :path => ":path/to/images" 
validates_attachment :image, content_type: { content_type:  ["image/jpg", "image/jpeg", "image/png"] } 

accepts_nested_attributes_for :member, :project 

end

현재 발생하는 오류는 다음과 같습니다.

ActiveRecord::UnknownAttributeError (unknown attribute: image) 

이것은 얻은 후에 변경되었습니다.

Paperclip::Errors::MissingRequiredValidatorError (Paperclip::Errors::MissingRequiredValidatorError): 

나는 다른 자원의 무리와 함께 주위를 엉망 마이그레이션, 변경 마이그레이션을 실행 한, 나는 여전히 문제의 원인을 정확히 알 수 없습니다. 그것은 몇 가지 일이 될 수있는 것 같아요 그 수정 프로그램을 구현하려고하지만, 그것은 항상 그냥 다른 오류로 이어 지거나 그냥 실행 - 한 - 라운드가 발생합니다.

도움을 주시면 감사하겠습니다. 어쨌든 도움이된다면 더 많은 코드를 게시 할 수 있습니다.

답변

0

당신은 반드시 accepts_nested_attributes_for :images, :allow_destroy => true을 프로젝트 및 멤버 클래스에 넣어야합니다. 그리고 당신은 또한 당신의 ActiveAdmin을 모델의 이미지를 허용해야한다 :

전혀 첨부 파일을 확인하지 않을 때 무슨 일
permit_params images_attributes: [:id, :image, :_destroy] 

?

+0

의견을 보내 주셔서 감사합니다. 나는 ** image.rb **를 없애고 그것을 해결할 수 있었고 사용하고자하는 모델에 클립 정보를 넣을 수있었습니다. 지금 유일한 문제는 ** picture.rb ** 모델에 ** ** project.rb ** 모델이 아닌 ** 그림에 나타나는 API를 생성 할 때입니다. 왜 그런지 잘 모르겠지만, 알아낼 것입니다. – user3749994

관련 문제