Domanda

Se ho un controllore, come faccio accedervi via URL con i metodi appena aggiunto?

Motivo Sono confuso è perché ho un percorso,

map.connect 'assignments/:external_id.:format', :controller => "assignments", :action => "show", :external_id => /\d{6}/

Sembra che non posso accedere a qualsiasi altro metodo all'interno del controller assignments perché se lo faccio

mysite.com/assignments/other_method

Sarà scontato che other_method è un ID sto passando nel controller show, come specificato nella voce rotta di cui sopra.

Modifica:

ho aggiunto questo al top:

map.connect 'assignments/send/', :controller => "assignments", :action => "send"

e ora sto ottenendo questo errore:

ArgumentError in AssignmentsController#show 

Il percorso per assignments/send è la prima declration per uno dei compiti di controllo

È stato utile?

Soluzione

La tabella di routing dovrebbe avere in questo ordine

map.connect 'assignments/:external_id.:format', :controller => "assignments", :action => "show", :external_id => /\d{6}/

map.connect 'assignments/send/', :controller => "assignments", :action => "send"

per terminare con

  map.connect ':controller/:action/:id'
  map.connect ':controller/:action/:id.:format'

come caso più generale.

Altri suggerimenti

Basta specificare il modello di percorso giusto per quel secondo caso e assicurarsi di tenere a mente che le mappature vengono valutate dall'alto verso il basso (prima partita viene eseguito).

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