2011-01-14 3 views
0

Je travaille sur un projet Rails 3 avec le modèle appelé "recover"Comment acheminer vers une méthode show en utilisant un autre nom?

J'ai créé l'itinéraire suivant qui fonctionne. Il achemine à l'index comme je le pense:

match de 'CheckedIn' => 'récupère l'indice #', : as => 'CheckedIn'

link_to 'index', checkedin_path

Comment acheminer vers l'ID de la méthode show? Le code suivant est ma tentative, mais il ne fonctionne pas. Qu'est-ce que je fais mal?

match de 'CheckedIn /: id' => '# show récupère',: comme => 'checkedin_show'
link_to 'show', checkedin_show_path (@recovers)

+0

quelle erreur sont u recevoir? – CHID

Répondre

1

pourrait-il être que vous vouliez écrire

link_to 'show', checkedin_show_path(@recover) 

Notez l'argument est @recover (sans "s").

+0

évident! Je ne peux pas croire que j'ai raté ça. –

0

La réponse de David Sulc semble être la bonne. Ma question est "Pourquoi n'utilisez-vous pas les ressources pour cela?"

Votre route serait facile resources :recovers, :path => 'checkedin' (... et vous devriez ajouter un underscore à checked_in pour correspondre aux conventions Rails typiques). Vous obtiendrez ces itinéraires:

recovers GET /checkedin(.:format)   
      POST /checkedin(.:format)   
new_recover GET /checkedin/new(.:format)  
edit_recover GET /checkedin/:id/edit(.:format) 
    recover GET /checkedin/:id(.:format)  
      PUT /checkedin/:id(.:format)  
      DELETE /checkedin/:id(.:format)  
0

vous devez créer méthode

def show 
@post = Post.find(params[:id]) 
end 

ou

à la page de contrôle que vous créez

before_action :set_post, only: [:show, :edit] 
+0

agréable son travail – vinodh

Questions connexes