2010-06-28 5 views
0

여기 시나리오가 있습니다. 사용자가 모든 데이터를 입력하고 모두를 사용하여 결과를 채우기를 원합니다. 나는 그 (것)들에게 결과 페이지를 보여줄 것이기 때문에 데이타베이스에서 그 (것)들을 저장할 필요가 없을 것이다.레일 : 테이블없는 모델로 이미지 업로드

나는 http://railscasts.com/episodes/219-active-model을 만들었으며 테이블을 만들지 않았습니다.

하지만 지금은 사용자가 이미지 업로드를 받고 싶을 때 문제가 있습니다. 또한 결과 페이지에 그 그림을 표시하고 싶습니다. 그리고 가능한 한 한 번만 사용하게 될 것이므로 데이터베이스에도 저장하고 싶지는 않을 것입니다.

(내가 다른 해결책을 찾기을 couldnt 때문에) 나는 tableless 모델 클립을 구현하는 시도하지만이 모델이 작동하기위한 액티브 :: 자료를 상속 것 같다

이 가능합니까? 아니면 이것을 구현할 수있는 다른 방법입니까?

감사합니다.

+0

테이블없는 모델은 무엇이 필요합니까? 코드를 깨끗하게 유지하려면? 그 모델 안에서는 어떤 일이 벌어지고 있습니까? –

+0

사용자로부터 입력을 수집하고 결과 페이지를 표시 할 계획이었습니다. 처음에는 폼 매개 변수에서 직접 입력을 가져 왔습니다. 왜 내가 tableless 모델을 사용하는 이유는 아마도 ActiveRecord 유효성 검사를 이용하는 것이 었습니다. – user372705

답변

0

Paper Clip을 사용하여 성공한다면, 더 이상 필요없는 이미지를 어떻게 제거 할 수 있습니까? 데이터베이스 나 영구 저장 장치가 없으면 이미지가 저장된 위치를 어떻게 알 수 있습니까?

이미지 업로드를 허용하는 테이블없는 모델을 해킹하기 전에 다시 생각해 봐야 할 몇 가지 개념적인 문제가 있다고 생각합니다.

그러나 어떤 이유로이 방법으로 정말로하고 싶다면, 파일을 ActiveRecord 개체와 더 쉽게 연결할 수 있도록하기 위해 Paperclip과 같은 보석을 사용하지 않고 이미지를 업로드하는 것이 좋습니다. . 루비에서 파일을 업로드하는 방법에 대해 Google만으로는 그다지 어렵지 않습니다.

0

좋아요, 그래서 당신은 이미지를 받고, 그것을 바로 표시하고 이미지를 저장하지 않으려합니다. 할수있다.

멀티 파트를 사용하여 파일을 수신 한 컨트롤러는 요청을 다시 전송합니까?

컨트롤러 파일 : 당신은 그럼 그냥 정리 TMP 당신이 필요합니다

def upload 
    # Save file 
    name = params['datafile'].original_filename 
    directory = "tmp/uploads" 
    temp_file_name = File.join(directory, name) 
    send_file temp_file_name, :status=>200 
end 

. 또는 필요할 때 File.delete temp_file_name을 사용해보십시오.

이미지인지 확인하려면 Paperclip 모델 유효성 검사를 수행 할 수 있습니다.