Mam kontroler, który kontroluje formularz kontaktowy na stronie kontaktowej. Wewnątrz pliku routes.rb
mam linię, która mówi: match '/contact', :to => 'feedback#new'
. Teraz, gdy formularz jest wypełniony poprawnie, wszystko działa poprawnie; adres URL to "/ kontakt". Jeśli jednak formularz nie zostanie wypełniony poprawnie, mój kontroler renders 'new'
zmieni adres URL z '/contact'
na '/feedback'
. Czy ktoś może mi powiedzieć, dlaczego tak się dzieje i jak mogę to naprawić, aby po uruchomieniu sprawdzania poprawności i wyrenderowaniu strony URL nadal będzie oznaczony jako /contact
, a nie /feedback
? Dzięki!Railsy: Dlaczego niestandardowy adres url zmienia się po wywołaniu `render 'new'`?
Moje kod kontrolera:
można wyświetlić zawartość pliku 'config pliku/routes.rb'? [Edytuj] Pomocny będzie również kod widoku. Jeśli używasz 'form_for (@feedback)', gdy formularz wysyła, robi POST do '/ feedback', ponieważ Rails używa RESTful URLs. Pamiętaj, że adresy URL są oparte na trasach do kontrolerów i akcji, a NIE nazwą renderowanego widoku. 'FeedbackController # create' jest prawdopodobnie zamapowany na'/feedback' (sprawdź 'rake routes') –
Masz rację' FeedbackController # create' jest zmapowany na trasę '/ feedback'. Co powinienem zrobić, aby odpowiedzieć na powyższe pytanie? – agentbanks217
Czy kiedykolwiek to rozgryzłeś? Walczę z tym. – skaz