Nie mogę dojść ładu z bardzo prostymi routami

Jak widać Admins tworzyłem tylko jako model (przez generator), potem dodałem kontroler.
Teraz nie mogę ustawić routów dla tego.
Proszę o pomoc.

https://github.com/matiit/myblog

No właśnie nie za bardzo widać, bo nie ma ani kontrolera, ani modelu. :wink:

Poza tym chcesz mieć /admins czy /admin - bo to robi różnicę?

Jeśli /admins, to musisz mieć model Admin (admin.rb) + AdminsController (admins_controller.rb) + views/admins/*, wtedy Twoje routes.rb powinny wyglądać tak:

Myblog::Application.routes.draw do
  resources :admins
  match 'add_admin' => 'admins#new', :as => 'add_admin'
  resources :entries
  root :to => 'entries#index'
end

Jeśli natomiast /admin, to musisz mieć model Admin (admin.rb) + AdminController (admin_controller.rb) + views/admin/*, a routes.rb powinno wyglądać tak:

Myblog::Application.routes.draw do resources :admin match 'add_admin' => 'admin#new', :as => 'add_admin' resources :entries root :to => 'entries#index' end
Ponadto, wtedy musisz w /config/initializers/infelctions.rb napisać:

ActiveSupport::Inflector.inflections do |inflect| inflect.uncountable %w( admin ) end
Pytanie, czy to ma sens? :slight_smile:

Zobacz teraz, jakimś cudem nie dodał się do gita model i kontroler admina - głupie IDE:/

git add .

:slight_smile:

tylko teraz w new szuka admins_path

Ja bym zrobił tak:

resources :admins, :path => "admin"

Tylko musisz mieć “AdminsController”, wtedy admins_path zwróci dobrą ścierzkę, a url będzie wyglądał tak jak chcesz, czyli:
/admin/new

Czyli muszę zmienic nazwę pliku i klasy AdminController na AdminsController?

Ok, z routami poradziłem sobie, wielkie dzięki. Jeszcze jeden mały dziwny bląd.

Jak uzupełnię formularz z błędami (ten przy add_admin), to mam:

You have a nil object when you didn't expect it! You might have expected an instance of ActiveRecord::Base. The error occurred while evaluating nil.errors
A przecież błędy wyświetlam tylko: if @admin.errors.any?

https://github.com/matiit/myblog/blob/master/app/views/admins/new.html.erb#L7

Tutaj masz zmienną @user, która jest równa nil.

HINT: poniżej errora masz kawałek kodu, z linią w której pojawił się problem. Skorzystaj z tego :slight_smile:

huh, ok, racja, kod brałem w większości ze screencasta, zmieniłem nazwę modelu i kontrolera i przeoczyłem w jednym miejscu (;
Dzięki za cierpliwość