ใน ShopContoller มี action index,show,new,create แล้วสั่ง Routing ด้วย map.resources :shop
ติดปัญหาคือ <% link_to "Back to index", shop_path %>
เมื่อคลิกที่ลิ้งมันควรไปที่ http://localhost:3000/shop ใช่หรือไม่ครับ
แต่ของผมมันกลับลิ้งไป แบบติดparameter id เป็น http://localhost:3000/shop/(id)
ผมทำผิดตรงไหนครับ ช่วยแนะนำด้วยครับ
ขอบคุณครับ
มันลิงค์ที่ http://localhost:3000/shop/(id) ถูกแล้วครับ
ถ้าอยากให้ไป http://localhost:3000/shop
น่าจะ map url ประมาณนี้ครับ
ActionController::Routing::Routes.draw do |map|
map.shop '/shop', :controller => (controller_name), :action => (method_name)
end
มันควรจะกลับไป /shops ครับ :)
ต้องใช้
<%= link_to "Back to index", shops_path %>
แทนครับ
บล็อกของผม: http://sikachu.com
บล็อกของผม: http://sikachu.com
อ้าว คิดว่า คำถาม คือ shop_path ลิงค์ไป /shop/(id) ใช่หรือเปล่า 55+
อ่อ...ขอบคุณมากครับ
ชื่อคอนโทรลต้องมี s นั้นเอง, ผมลองเปลี่ยนชื่อคอนโทรลเลอร์เป็น shops แล้วใช้ได้ครับ
แล้วเกิดผมตั้งชื่อคอนโทรลเป็นคำนามที่มีรูปพหูพจน์ไม่มี s ล่ะครับ routes จะทำงานได้มั้ยครับ
หรือกรณีนั้นต้องไป config เอง
ถ้าจะใช้ map.resources มันเป็นสิ่งที่เขากำหนดมาครับว่า controller ต้องเป็น plural เพราะว่าเขาถือว่า
resources
มันหมายความว่ามีหลาย resource ครับ :) (เช่น/users/
เป็นต้น)ถ้าอยากได้
/user/
ต้องใช้map.resource
ครับ (singular resouce) แต่ว่าชื่อ controller ก็ต้องเป็น plural อยู่ดีถ้าอยากได้ controller ที่ไม่เป็นพหูพจน์ ก็ต้อง map เองครับ
map.connect
เลย :)ลอง
google: rails resources
ดูครับ ดู example ใน api ดูครับบล็อกของผม: http://sikachu.com
บล็อกของผม: http://sikachu.com
ขอบคุณมากครับ ^_^