2011-11-03 4 views
0

웹 사이트의 사진 업로드 기능을 만들려고하는데 두 가지 방법으로 업로드 할 수 있습니다. 하나는 원격 URL 링크를 지정하고 다른 하나는 로컬 컴퓨터에서 업로드하는 것입니다. 그래서 이것은 두 개의 부분을 작성해야합니다. 사진에 동일한 컨트롤러를 사용하여 위의 두 가지 상황에 대한 두 개의 링크로 photo_upload보기를 만드는 효율적인 방법은 무엇입니까? 리디렉션 정보를 컨트롤러에 전달하는 방법에 대해 고민하고 있습니다. 이상적으로 링크 중 하나를 클릭 할 때 upload_source라는 photocontroller 변수를 설정하고 싶습니다. 그러나 link_to를 사용하여 이러한 변수를 전달하는 방법과이 부울 변수를 정의하는 가장 좋은 위치가 어디인지는 잘 모릅니다.레일즈가 하나의 컨트롤러로 두 개의보기를 생성합니다.

일부 코드 예제 : 뷰에서

:

helper_method :get_source, :set_source 

    private 

    def set_source=(_source) 
    @@source = _source 
    end 

    def get_source 
    @@source 
    end 

이 크게 감사합니다 도움을줍니다 : photoController에서

<h2>Upload a Photo: Step 1 of 3</h2> 
    <br> 
    <h3><strong>Where is your photo?</strong></h3> 
    <br> 
    <div class="button_border"> 
     <a href="add_photo_web">On the Web</a> 
    </div> 
    <div class="button_border"> 
     <%= link_to "On My Computer", new_photo_path%> 
    </div> 
    </div> 

(이 옳은 일이 있는지 확실하지 않습니다)!

매우 관대 한 도움에 감사드립니다. 나는 끊임없이 stackoverflow의 효율성에 놀란다.

link_to "On my computer", new_photo_path, :source => "local" 
link_to "Remote source", new_photo_path, :source => "remote" 

다음 컨트롤러에서이 같은 수 : :

def new 
if params[:source] == "local" 
    render :partial => 'local' 
else 
    render :partial => 'remote' 
end 
end 

답변

2

, 당신은 다음과 같이 정의 링크를함으로써 당신이 원하는 것을 얻을 수 UX 도움말을 요구하지 않았지만이 첫 번째 단계를 생략하고 가장 일반적으로 사용되는 필드 (URL에 대한 파일 업로드 필드 또는 텍스트 필드)로 새로운 사진 양식을 표시하는 방법을 고려해 보았습니다.

그런 다음 다른 옵션으로 전환 할 수있는 링크가 있어야합니다. 링크를 자바 스크립트를 통해 현재 입력란으로 바꿉니다.

Tumblr이 사진 업로드 방법 ... 동일한 원리를 살펴보십시오.

+0

당신은 params 테이블에 대한 나의 이해를 상당히 향상 시켰습니다. 그런데 params 테이블에 어떤 것을 넣을 수 있는지 철저히 이해할 수있는 좋은 곳이 있습니까? –

+0

params 해시라고 생각하면 api로 시작합니다. http://apidock.com/rails/ActionView/Helpers/UrlHelper/link_to – chrispanda

+0

링크를 제공해 주셔서 감사합니다. 현재 컨트롤러를 함께 사용하는 방법에 대해 잃어 버렸습니다. 소스 해시를 사용하여 사용할 뷰를 결정합니다. 그것에 대해 힌트를 줄 수 있습니까? –

1

내가 아는을 내가 제대로 이해하면

관련 문제