błąd undefined method `posts_path'

Podczas generowania formularza

<%= form_for @post do |f| %> <% end %>
dostaje błąd błąd undefined method `posts_path’

w kontrolerze mam:

def new @post = Post.new end
w routes.rb

match "/nowy_wpis/" => "posts#new"

Czy orientuje się ktoś z czego może wynikać efekt zaistniałej sytuacji ?

Użyj resources :posts – co prawda będziesz miał ścieżki typu /posts/new ale to chyba nawet ładniej.

Dziękuję - działa.
Jak w tym wypadku ustawić “swoje ścieżki”?

Zależy.
Jeśli chcesz przetłumaczyć istniejące, to Tylko sekcja z tłumaczenia ścieżek, ale polecam przeczytać całość.

Taka drobna uwaga, możesz się bawić w ścieżki typu “/nowy_wpis”, ale chyba łatwiej będzie jednak pozostać przy konwencji REST, nawet jeśli zamierzasz tłumaczyć tzn. “/wpisy/nowy”. Technicznie jest to łatwiejsze do ogarnięcia, a nie ma sensownych przesłanek do tego, żeby się męczyć dla nie-restowych ścieżek ;).

Otóż nie zgodzę się z Tobą Sarniaku - są przesłanki i to bardzo istotne - SEO i użyteczność. Znacznie lepiej wygląda adres /zdjęcia/wakacje-2012/grecja/na-plazy niż /photos/12

Noo, to co innego id, a co innego sciezka do kontrolera. :slight_smile: proponuję ci zostawić post, a do id użyć np. gema https://github.com/norman/friendly_id

Jeżeli jest to fragment strony służący administracji to faktycznie nie ma znaczenia url, post jak najbardziej może zostać. Problem pojawia się jednak gdy np. nad projektem pracuje ekipa międzynarodowa więc nazwy(kontrolerów, akcji etc.) są na przykład po angielsku, natomiast dana wersja językowa dla dobrego SEO wymaga, aby adres był w konkretnym języku. Domyślam się, że i ten problem jest rozwiązany w Ruby on Rails.
Dzięki za namiary na gema - przyda mi się z pewnością.

yup, https://github.com/kwi/i18n_routing :slight_smile:

Warto rzucić też okiem na https://www.ruby-toolbox.com/search?utf8=✓&q=routing