Rails Routes Gotcha
Sekian lama bekerja dengan Rails saya masih menemukan beberapa hal yang cukup mengejutkan.
Rails routes
Di file config/routes.rb
bukan hal yang aneh kalo kita membuat route tambahan selain RESTFul routes yang di hasilkan oleh generator rails.
1 | Rails::Application.routes.draw do |
Hasil dari routes diatas selain 7 rute REST standar rails juga akan menghasilkan satu rute tambahan dengan path seperti ini:
1 | post_share POST /posts/:post_id/share(.:format) posts#share |
Perhatikan bahwa di rute itu menggunakan params post_id
untuk pengenal post mana yang akan di cari dan helper yang kita dapat adalah post_share_path
, sedangkan jika kita membuat route kita seperti dibawah ini:
1 | Rails::Application.routes.draw do |
File routes diatas akan menghasilkan rute tambahan dengan path seperti ini:
1 | share_post POST /posts/:id/share(.:format) posts#share |
Perhatikan bahwa sekarang rute ini akan menggunakan params id
sebagai pengenal post mana yang akan di cari di controller, dan helper yang kita dapat adalah share_post_path