Witam
Mam pytanie związane z tworzeniem własnych akcji w kontrolerach. Umiem tworzyć oczywiście sam kontroler, przypisać ścieżki w root itd, ale chciał bym np zrobić własną akcję np do zapisywania nowych rekordów w bazie danych po wypełnieniu formularza.
Normalnie jest tak, że jest akcja new i po wypełnieniu formularza on kieruje na akcję “create”. Jest też akcja “edit”, która kieruje na “update”, czyli są to podstawowe akcje CRUD.
Natomiast ja chciał bym zrobić swoją akcję - to wiem oczywiście jak zrobić, ale z tej akcji po wypełnieniu jakiegoś formularza zapis w bazie danych odbywał by się w innej akcji, a nie w standardowej create, update.
Wystarczy, że podasz poprawny url w formularzu i dodasz ścieżkę w routes.rb, np:
#views/people/_form
= form_for @person, url: custom_create_people_path
lub
= form_for @person, url: custom_update_person_path(@person)
#routes.rb
resources :people do
post :custom_create, on: :collection
patch :custom_update, on: member
end
Proste bardzo dziękuję za odpowiedź
troche offtop ale jak ktos juz siedzi w rails to jakby to dhh zrobil (http://jeromedalbert.com/how-dhh-organizes-his-rails-controllers/) - tylko CRUD dozwolony