2011-11-03 79 views
0

我想爲網站創建一個照片上傳功能,並且有兩種上傳方式。一種是通過指定遠程URL鏈接,另一種是從本地計算機上傳。所以這需要我寫兩個部分。使用相同的控制器來創建photo_upload視圖的有效方法是什麼?我被困在如何將重定向信息傳遞給控制器​​。理想情況下,我想在點擊其中一個鏈接時設置一個名爲upload_source的photocontroller變量,但我不知道如何使用link_to傳遞此類變量,以及在哪裏定義此布爾變量的最佳位置。rails用一個控制器創建兩個視圖

的某些代碼示例:

從視圖:

<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> 

從photoController(不知道這是做正確的事):

helper_method :get_source, :set_source 

    private 

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

    def get_source 
    @@source 
    end 

幫助是極大的讚賞!

謝謝大家的非常慷慨的幫助!我一直驚歎於stackoverflow的效率。

回答

2

如果我理解正確的話,你可以達到你想要的東西具有這樣定義鏈接:

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 
+0

您提高了我對params表的理解。順便問一下,有一個很好的地方可以全面瞭解params表中可以放置什麼樣的東西? –

+0

把它看作params散列,我會先從api http://apidock.com/rails/ActionView/Helpers/UrlHelper/link_to到 – chrispanda

+0

感謝這個鏈接,它明確地解決了一些問題。我目前失去了關於如何一起使用控制器:source hash來確定使用哪個視圖。你能提供一些提示嗎? –

1

我知道你沒有要求UX的幫助,但我會考慮放棄這第一步,並簡單地顯示新的照片形式與你期望最常用的字段(無論是文件上傳字段或URL的文本字段)。

然後有一個鏈接切換到另一個選項...但有那個鏈接只是通過javascript替換當前字段。

看看Tumblr如何上傳照片...相同的原則。

相關問題