in config/routes.rb:Qualcuno ha qualche consiglio per la gestione delle risorse nidificate polimorfiche in Rails 3?
resources :posts do
resources :comments
end
resources :pictures do
resources :comments
end
vorrei per consentire più cose per essere commentato come bene.
Attualmente sto usando mongoid (mongomapper non è ancora compatibile con Rails 3 come vorrei), ei commenti sono una risorsa incorporata (mongolo non può ancora gestire risorse relazionali polimorfiche), il che significa che lo faccio serve la risorsa genitore per trovare il commento.
Esistono eleganti modi per gestire alcuni dei seguenti problemi:
Nel mio controller, ho bisogno di trovare il genitore prima di trovare il commento:
if params[:post_id]
parent = Post.find(params[:post_id]
else if params[:picture_id]
parent = Picture.find(params[:picture_id]
end
che sta per ottenere disordinato se Comincio ad aggiungere altre cose per essere commentabili.
anche url_for([comment.parent, comment])
non funziona, quindi ho intenzione di avere a definire qualcosa nel mio modello Comment
, ma penso che sto anche andando ad avere bisogno di definire un percorso di indice nel modello Comment
così come potenzialmente un modifica e nuova definizione del percorso.
Potrebbero esserci altri problemi che devo affrontare man mano che procedo oltre.
Non riesco a immaginare che io sia la prima persona a provare a risolvere questo problema, ci sono soluzioni là fuori per renderlo più gestibile?
Questo sembra davvero buono; con alcune piccole modifiche ho appena implementato questo, e per la maggior parte sembra funzionare bene. dov'è la documentazione per l'inganno di routing che hai usato nella prima parte in modo da poter capire come collegare anche i percorsi di creazione, aggiornamento, cancellazione e indicizzazione? – Ryan
Ok, penso di aver capito cosa stavi facendo e perché lo trovi brutto. Il commento deve fondamentalmente essere l'ultimo percorso definito perché corrisponderà a qualsiasi cosa. Ho finito per utilizzare parte di quello che stavi facendo e parte di ciò che stavo facendo per ottenere tutto ciò che è stato implementato. Apprezzo molto il vostro aiuto. – Ryan
Ah, giusto, scusate se non ero chiaro. Quelle linee splattate possono essere complicate. – PreciousBodilyFluids