J'ai un champ booléen appelé "enregistré" dans ma base de données. Je veux basculer ce champ en cliquant sur un lien texte qui passe de "Enregistrer" à "Unsave" en fonction de la situation, et met à jour ma table "Client" avec 0 ou 1. Je suppose que Javascript peut être un moyen d'aller pour cela mais je ne suis pas assez expérimenté (encore!) en Javascript pour savoir comment le coder. J'ai annulé la question pour la raccourcir. Voici mon code exact.Rails: comment basculer un champ booléen d'une vue?
#employers controller
def save_toggle
@matching = Matching.find(params[:id])
if @matching.employer_stars == false
@matching.employer_rejects = false # If saving a match, remove any existing rejection.
end
@matching.employer_stars = [email protected]_stars
@matching.save
render :partial => "save_unsave_buttons", :layout => false
end
#view home.html.erb
<%= render :partial => "save_unsave_buttons", :locals => {:matching => matching} %>
#partial _save_unsave_buttons.html.erb
<div id="save_buttons" class="buttonText"> #latter is just for CSS layout
<% if @matching.employer_stars %>
<%= link_to_remote "Unsave",
:url => {:action => "save_toggle", :id => matching.id},
:update => {:success => "save_buttons", :failure => "Error"} %>
<% else %>
<%= link_to_remote "Save",
:url => {:action => "save_toggle", :id => matching.id},
:update => {:success => "save_buttons", :failure => "Error"} %>
<% end %>
</div>
La base de données fonctionne mais le texte à bascule ne bascule pas. À @nathanvda: Je suis vraiment désolé d'avoir été si mal - je veux confirmer votre réponse, mais je sais que si je le fais, je laisserai cela pendant un moment, puis je reviendrai et je serai de nouveau frustré! Merci mec.
Salut @nathanvda, merci pour les commentaires. J'ai mis à jour ma question ci-dessus. – sscirrus
Salut @sscirrus: j'ai mis à jour ma réponse en conséquence. J'espère que c'est plus clair maintenant? – nathanvda
Salut @nathanvda: Je suis presque là. Juste une dernière erreur à passer - j'avais besoin d'ajouter: les locaux appellent le partiel pour qu'il reconnaisse 'matching'. Mais, les bascules ne fonctionnent pas. Voir ma mise à jour pour plus de détails. Je vous ai donné un 1+ jusqu'à présent, et merci. – sscirrus