0
所以,我的第一個問題在Stackoverflow! 讓我們來看看它是如何去...collection_select與座標資源
所以,我已經有了一個collection_select
誰代表當前類別您現在的位置:
<%= collection_select(:category, :slug, current_user.categories, :slug, :name) %>
這種選擇代表哪個類別的用戶目前是,並且用戶應該能夠在類別之間切換。
類別有後,像這樣:
resources :categories do
resources :posts
end
我想collection_select
基於URL參數,到目前爲止的工作自動選擇當前類別:
http://myproject.com/categories/action
選擇的值是與當前的url參數相同。 但是,當用戶瀏覽到後它不工作:
http://myproject.com/categories/action/my-new-post
這將重置collection_select
,我想它是與坐落資源,我應該怎麼辦?
只是澄清:當用戶選擇一個類別時,我有一個非常簡單的JavaScript來重新加載頁面。
是的工作,但只在我的第二種情況,雖然:'http:// myproject.com/categories/action/my-new-post'我的參數正在改變,取決於我在我的應用程序中的位置, m在一個帖子'http:// myproject.com/categories/action/my-new-post'中,參數是:'category_id',如果我只是在一個類別中,它是:'id'。如果我沒有定義':selected => params [:category_id]'它在我在帖子中時有用,而且如果我_do_定義它,當我剛剛在一個類別中時它不起作用。讀完一段後,不應該'collection_select'自動計算出來嗎? –
實際上找到了一個解決方案:':selected => lambda {return params [:id] || params [:category_id]} .call'但我真的懷疑這是最好的,甚至是一個很好的解決方案。必須有一個更乾淨的方式來做到這一點。 –