Ho un modello chiamato ImplicitTest
. Si dice che avere un oggetto Ruby chiamato Test
rompa un sacco di cose in Rails.Come scrivere il routing quando il nome del modello di risorsa non corrisponde a percorso o controller
Tuttavia, desidero ancora esporlo come risorsa RESTful come test
(ad esempio /tests
, /test/1/edit
e così via). Inoltre, sarebbe bello mantenere il controller come TestsController
, anche se è meno importante.
stavo facendo questo avendo semplice linea resources :tests
nel mio file routes.rb, ma questo non riesce per le forme RESTful (ad esempio <%= form_for @test ... >
- questo raccoglie che l'oggetto @test è di tipo ImplciitTest, e cerca di occhiata implicit_test_path
che non esiste.
ho provato ad aggiungere form_for opzioni, ma sono giunto alla conclusione che per avere il lavoro sotto forma sia per i new
e edit
azioni, non c'era un unico modo unificato di chiedere form_for() per utilizzare un prefisso diverso per la ricerca del nome del percorso
Quindi ho cercato di affrontare il problema dal routing lato. C'è una linea che posso aggiungere al file percorsi che mi permetterà di:
- Avere un modello chiamato ImplicitTest
- Avere il percorso come/test
- Utilizzare il <% = form_for @test .. .%> tag ancora
- Tenere il controller come TestsController (opzionale)
so di partenza l'Sentiero dorato per fare questo, ma Rails non è lasciare me utilizzare il test come un nome del modello, ma questo è il nome che gli utenti si attendono vedi nell'URL per questa risorsa, quindi spero ci siano semplici opzioni di routing che abilitino questo.
Questo non sembra aggiustare il nome del contoller, ma regolandolo su 'resources: implicit_tests,: controller =>" tests ",: path =>" tests "' sembrava aggiungerlo. – Phantomwhale