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
  1. 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?

  2. 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

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top