Rotaie associazioni / sessioni di domande
-
25-10-2019 - |
Domanda
Sto lavorando su un'applicazione per i miei figli di accedere loro faccende. Ho 3 figli (Nick, Siena, Mac) e hanno una home page con ogni nome con collegamento ipertestuale ...
Ho le seguenti associazioni:
Child:
has_many :completions
has_many :chores, :through=>:completion
Completion:
belongs_to :child
belongs_to :chore
Chore:
has_many :completions
has_many :kid, :through=>:completion
-
Come faccio (dopo aver fatto clic il nome del bambino) Salvare il child_id come un oggetto di sessione per la pubblicazione completamenti ai modelli completamenti?
-
Come faccio a cancellare / cambiamento che sesison ad un nuovo bambino quando un altro bambino scatta il loro nome nella homepage?
Ogni aiuto è molto apprezzato. Grazie, CB
Soluzione
Se ho capito correttamente alla domanda (almeno come descritto nel tuo commento), ho fatto qualcosa di simile di recente. Vedere Costruire un attributo nidificato da oggetti genitore multipla . Fondamentalmente, ho usato polymorphic_url di fare un collegamento per creare un nuovo elemento (avrei probabilmente usare @ child.chores.build (params)) e passare l'attributo:. Chore_id, cioè
link_to "Mark as complete", polymorphic_url([:new, @child, :completion], :chore_id => @chore.id)
Nel vostro controller make sicuro che per il vostro ChoresController # NEW avete qualcosa come
def new
@chore = <current_child>.chores.build(params)
end
Spero che questo aiuti.
Altri suggerimenti
Così Josh andati ben oltre. Come un noob mi è stato chiesto qualcosa di molto più semplice ed elementare per la maggior parte delle persone. La risposta è stata molto semplice:
ApplicationController
private
def current_child
child = Child.find(params[:id])
session[:child_id] = child.id
end
end
Questo mi ha permesso di Codice del negozio di quel bambino in una sessione e post per il modello compilato.