我試圖通過使用幫助器傳遞數組來獲取選項以顯示我的選擇標記。我是ROR的新手,我無法弄清楚這一點。我已經能夠使用我的助手傳入美國各州的數組,但它不會像我構建數組那樣使用我的數組。我測試了這個函數作爲一個ruby程序,它確實返回了我創建的數組,但是當我將它傳遞給options_for_select時它不起作用。沒有選項顯示。Ruby On Rails - 無法將數組傳遞給選擇窗體標記中的options_to_select
因此,這裏是我的幫助:
module ImagesHelper
def get_images
image_array = Array.new()
Dir.glob("../assets/images/*.jpg") do |item|
new = item.to_s
new = new.slice(17..new.length)
image_array << new
end
image_array
end
end
上面創建JPG文件在我的圖片名稱的陣列切斷目錄名文件夾中。
這裏是我的選擇標籤的形式代碼:
<div class="field">
<%= f.label :imageurl %><br />
<%= f.select(:imageurl, options_for_select(get_images)) %>
</div>
我使用Ruby 1.9.3和Rails 3
耶!謝謝!當我等待答案時,我改變了新的方式,因爲我意識到可能存在衝突,但這並沒有解決問題。推送File.basename(item)也沒有。但是將目錄從'../assets/images/*.jpg'更改爲'app/assets/images/*。jpg'就訣竅了! ROR不使用..來訪問下一個目錄嗎?無論如何,你爲我節省了幾個小時,繼續將我的頭靠在牆上。非常感謝! – autotheist 2014-12-07 11:55:19
耶。您可以在'Dir.glob'行上面添加'p Dir.pwd',並將當前工作目錄打印到您的控制檯輸出中。 – 2014-12-07 11:59:56