2012-06-24 11 views
20

, więc wybieram wybór kolekcji.Rails collection_select opcja domyślna?

<%= collection_select :PriceRange, "7", PriceRange.where('value > 0'), :value, :name %> 

Próbuję uzyskać domyślny wybór należy pricerange z identyfikatorem 7, to jest niezależny i nie opiera się na żadnych ustawień użytkowników, jej część postaci, która zmienia pozycje wyświetlane na stronie według ich przedziału cenowego.

* * * UPDATED EFFORTS * * * 

dodałem

@price_higher = PriceRange.find(7) 

do kontrolera, który obsługuje ten pogląd, a dodany

, {:selected => @price_higher.value} 

wewnątrz collection_select. Wydaje się, że to wystarczy, chociaż szukał mniej skomplikowanego sposobu robienia tego wszystkiego w kolekcji collection_select.

Odpowiedz

33

Dodaj opcję :selected.

Przykład:

collection_select(:post, :author_id, Author.all, :id, :name_with_initial, {:selected => "whatever_value"}) 

Przykład wziął od: ApiDock

W twoim przypadku:

<%= collection_select :PriceRange, "7", PriceRange.where('value > 0'), :value, :name, {:selected => "whatever"} %> 
+0

powodem Unikam to, że wartość może się zmieniać w dół drogi, i Próbuję ograniczyć dodatkowy kod, który musi zostać zaktualizowany w przyszłości, a także, co należy zrobić, aby coś się zepsuło, jeśli ten element zostanie zmieniony w bazie danych i nie zostanie zaktualizowany w widoku. – mediarts

+2

więc ... Wierzę, że chcesz dokładniej wyjaśnić, czego chcesz ... – Nobita