Boutons radio ROR pour mannequins?
-
13-11-2019 - |
Question
J'ai lu la documentation à ce sujet, et je ne sais toujours pas comment procéder.
J'ai une colonne dans le tableau pour: gratuit c'est un booléen
true = free
false = paid
nil = both
J'essaie de capturer cette même logique sous ma forme et je fais un travail absolument terrible ... jusqu'à présent, tout apparaît gratuitement
index.html.erb:
<div class="field">
<label class="radio">
<%= radio_button_tag(:free, "free", :checked => true) %>
Free
</label>
<label class="radio">
<%= radio_button_tag(:free, "paid") %>
Paid
</label>
<label class="radio">
<%= radio_button_tag(:free, "both") %>
Both
</label>
</div>
Resources_Controller.rb (je sais que ce n'est pas idéal car il vérifie les paramètres à chaque fois (même s'ils entrent dans de mauvaises informations) mais je ne sais pas comment vérifier d'autre si je peux l'enregistrer sans l'enregistrer. Aussi ... je Je ne sais même pas si j'ai bien fait, mais je ne sais pas comment le vérifier non plus. Quand je le fais p params[:resources]
Il ne l'imprime pas comme je l'aime. Y a-t-il un bon moyen de faire ce genre de chose dans les rails?
def create
@resource = Resource.new(params[:resource])
if params[:resource][:free] = "free"
@resource[:free] = true
elsif params[:resource][:free] = "both"
@resource[:free] = nil
else
@resource[:free] = false
end
if @resource.save
redirect_to root_url
else
render :action => :new
end
end
Resources_helper.rb
def output_free
if @resource.free = true
"Free"
elsif @resource.free = false
"Paid"
else
"Both"
end
end
La solution
C'est une logique floue, vrai / false / null. Existe dans SQL, vous pourriez l'utiliser, mais c'est de la magie que vous ne voulez pas. Utilisez une énumération et trois états - beaucoup plus clairs.
Et utilise ==
comparer :-)