2017-02-23 4 views
0

Ich habe eine static_controller mit index Aktion, wo eine IDschienen zeigen. anstelle von/in url

Meine Strecken

get 'faqs' => 'static#main' 
    get 'faqs/:id' => 'static#index' 

benötigt wird, aber wenn ich diesen Weg faqs_path(faq_id) ich

http://localhost:5000/faq.1 statt http://localhost:5000/faq/1

Könnte mir jemand sagen, wie ich das beheben kann. Danke ..

Antwort

2

Möglicherweise müssen Sie sie richtig nennen:

get 'faqs' => 'static#main', as: 'faqs' 
get 'faqs/:id' => 'static#index', as: 'faq' 

Normalerweise Sie dies mit resources, wo Sie versuchen, REST Konventionen zu halten, aber in Ihrem Fall, wenn Sie wirklich auf diese Weise brauchen Sie um den Router zu trainieren.

Überprüfen Sie mit rake routes, dass die Namen korrekt sind. Sie haben möglicherweise faqs_path mit dem id als optionalen :format Spezifizierer aufgerufen.

+0

Genau das, was ich suchte..Danke – Abhilash

0

Ich denke, Ihr Problem hier ist, gleiche Strecke Namen, Sie Ihren Namen wie ändern können:

get 'faqs/:id' => 'static#index' 
get 'faqs' => 'static#main' 

zu

get 'faq/:id' => 'static#index' 
get 'faqs' => 'static#main' 

Und Ihrem path ist: faq_path(faq_id)

Sag mir, wenn es nicht funktioniert hat.

+0

wird es nicht funktionieren..still same – Abhilash

+0

@Abhilash ich aktualisierte meine Antwort, können Sie es noch einmal überprüfen? –

+0

same..wont Arbeit – Abhilash

0

Können Sie es versuchen. faqs_path(:id => faq_id)

+0

das wird funktionieren, aber es wird die params in '? ID =' anstelle von '/' – Abhilash

+0

ist es eine Anfrage trotzdem ...so params wird am Ende angehängt werden.le mich wissen, ob diese Antwort geholfen :) – Milind

+0

ja ich weiß, dass ich das tun kann .. Aber auf jeden Fall ist das nicht das, was ich suche .. – Abhilash

Verwandte Themen