Schienen - gibt es ein update für ein einzelnes Attribut?
War ich gerade Fragen, ich habe ein Modell, dass neben der id ' s von anderen Modellen (FK), es hat ein einziges Attribut boolean
. Ich möchte wissen, wie kann ich eine Schaltfläche erstellen, die Veränderungen, die diese boolean
- und genau das
Mein Modell in Frage ist diese:
class Squad
belongs_to :player
belongs_to :team
end
Möchte ich eine Schaltfläche erstellen, auf die team#show
Seite, so dass die player
Eigentümer dieser team
ändern können, die boolean
von squad
. Wie kann ich dies tun und wie Sie Aussehen würde, wie mein Controller?
Dank :)!
-Bearbeiten-
Bin ich mit einem link wie diesem:
<%=link_to("Change status", squad_path(sqd, :status => true), :method => :put, :confirm => "Sure?")%>
Wo sqd
ist Teil meiner Abfrage. Ist in diesem link falsch?
Du musst angemeldet sein, um einen Kommentar abzugeben.
in Ihrer Steuerung (es ist ziemlich üblich)
<% boolval_state = modelname.boolval ? "Y" : "N"; boolval_flip = modelname.boolval ? false : true; %>
<%= link_to boolval_state, modelname_path(modelname, "modelname[boolval]" => boolval_flip), method: :put %>
Ja, es ist. Die Methode wird als "update_attribute". Es nimmt zwei Argumente, den Namen des Feldes und den Wert.
Anhand der aktualisierten Frage
Was die Namen der Attribute ?
Da gehört es zu
player
, Sie können es mitplayer.squad.name_of_your_attributes = new_value
. Vergessen Sie nichtsave
Ihr Objekt, wenn Sie möchten, dass die änderungen gespeichert werden in Ihrem DB.Auch, du könntest Lesen dass
EDIT: fl00r beantwortet Ihre Frage bearbeitet, keine Notwendigkeit, dass ich das wiederholen, was er schrieb.