我們正在從Rails 3.2.13遷移到Rails 4.0.13。grouped_collection_select - group_method從Rails 3更改爲4
我們使用Rails幫手grouped_collection_select
來嵌套<optgroup>
s。
我注意到,從Rails 3.2.13到4.0.2有源變化。
http://apidock.com/rails/v4.0.2/ActionView/Helpers/FormOptionsHelper/grouped_collection_select
我們的方法的使用目前不工作。
這裏我們的代碼:
<%= f.grouped_collection_select :location_id, @participating_businesses, :"active_locations(#{current_user.id})", :name, :id, :name, {prompt: t('.prompt_select_location')}, class: 'location-selector form-control' %>
以下是錯誤:
ActionView::Template::Error (undefined method `active_locations(7)' for #<ParticipatingBusiness:0x005583478f1f90>):
現在很明顯,他們已經改變了如何GET方法的發送。
我在猜測,目前他們正在抓取group_method
選項並將其直接放入send(:group_method)
,這解釋了上述錯誤。
但是,我怎麼能傳遞一個參數給我的group_method
依賴於會話(又名current_user)。
查看來源,我不認爲這是完全可能的。
我應該尋找到重新寫這與我們的目標努力,沒有助手或一點點更多的手冊?
有沒有人遇到同樣的問題?
鑑於你知道,它不過直接傳遞'group_method'變量送,如果你試圖用'[:active_locations,current_user.id]'呢? –
這是一個非常聰明的解決方法,但是我已經嘗試過並且得到了'ActionView :: Template :: Error([:active_locations,7]不是一個符號)''。 – fbelanger
darn:/如果剛剛工作好了,你可能需要爲Rails提供功能請求。看起來像普通的'collection_for_select'可以採用'Proc',但是我看到了一個問題,那就是'分組'版本不能以同樣的方式工作 –