Rails collection_select standaardoptie?

dus ik stel een collecteselectie samen.

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

Ik probeer de standaardselectie te krijgen als PriceRange met de ID van 7, dit is onafhankelijk en vertrouwt niet op een van de gebruikersinstellingen, het deel van een formulier dat de items op de pagina wijzigt op basis van hun prijsklasse .

* * * UPDATED EFFORTS * * *

ik voegde toe

@price_higher = PriceRange.find(7)

naar de controller die de weergave verwerkt en toegevoegd

, {:selected => @price_higher.value}

in de collectie_select. Het lijkt de truc te doen, hoewel hij op zoek was naar een minder gecompliceerde manier om alles te doen binnen de collectie_select.

22

2 antwoord

Voeg de optie : selected toe.

Voorbeeld:

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

Example took from: ApiDock

In jouw geval:

<%= collection_select :PriceRange, "7", PriceRange.where('value > 0'), :value, :name, {:selected => "whatever"} %>
35
toegevoegd
dus ... ik geloof dat je meer in detail wilt uitleggen wat je wilt ...
toegevoegd de auteur Nobita, de bron
de reden dat ik dit vermijd, is dat de waarde onderweg kan veranderen, en ik probeer de extra code te beperken die in de toekomst moet worden bijgewerkt, ik ook wat om te voorkomen dat er iets breekt als dat item in de database wordt gewijzigd en wordt niet bijgewerkt in de weergave.
toegevoegd de auteur mediarts, de bron
collection_select(:post, :author_id, Author.all, :id, :name_with_initial, {:selected => @authors.first})

Dit zorgt ervoor dat de waarden altijd afkomstig zijn van de DB waar de gegevens worden opgehaald en kunnen veranderen als de DB verandert.

0
toegevoegd
Dit zorgt ervoor dat de waarden altijd afkomstig zijn van de DB waar de gegevens worden opgehaald en kunnen veranderen als de DB verandert.
toegevoegd de auteur Omoifo Darlington, de bron