이 질문은 이전 질문 (Return url from paperclip to json)의 결과로 나타납니다. 나는 이것을 따르기 쉽도록 그리고 위에서 언급 한 것의 일부이기 때문에 그것을 요약하고 있습니다. 여러 이미지를 업로드하는 클립 클립을 사용하는 CMS 시스템이 있습니다. 내 코드연관 모델의 인스턴스 메소드 호출
def overall_photos
@places = Place.all
render :json => @places.to_json(:methods => [:avatar_url])
end
오류 I
has_many :assets
accepts_nested_attributes_for :assets, :allow_destroy => true
def avatar_url
asset_url
end
places_controller
asset.rb
attr_accessible :asset_content_type, :asset_file_name, :asset_file_size, :asset_updated_at, :place_id, :asset
belongs_to :place
has_attached_file :asset
validates_attachment :asset, :presence => true,
:content_type => { :content_type => ['image/jpeg', 'image/png'] },
:size => { :in => 0..1.megabytes }
def asset_url
asset.url(:original)
end
place.rb입니다 내가 접근하려고하면 ... places/overall_photos.json은 { "상태": "500", "오류": "정의되지 않은 지역 변수 또는 # \ u003CPlace의 경우 asset_url"} 0x007f163b67d8a8 \ u003E "}로 표시됩니다. tat 관련 모델 place.rb를 통해 asset.rb의 인스턴스 메서드에 액세스 할 수 없습니다. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까? 나는 심지어 asset_url을 클래스 메소드로 만들려고 시도했지만 여전히 운이 없다. 이것은 당신이 모든 자산 URL을 원하는 경우 귀하의 코멘트
자산에 has_many 자산이 있다고 가정 할 때, 주어진 장소에 대해 'asset_url'이 반환해야하는 대상은 무엇입니까? –
특정 클래스 (예 : 자산)에 대한 인스턴스 메소드를 호출하려면 해당 클래스의 인스턴스가 필요합니다. – Slicedpan
가급적이면 모든 asset_urls가 반환되기를 바랍니다. – user3077352