Tags:
Forums: 

ใน 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)
ผมทำผิดตรงไหนครับ ช่วยแนะนำด้วยครับ
ขอบคุณครับ

Get latest news from Blognone
By: zdk
WriteriPhoneBlackberryUbuntu
on 8 December 2008 - 16:29 #74843
zdk's picture

มันลิงค์ที่ 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

By: Sikachu
ContributoriPhoneIn Love
on 8 December 2008 - 18:26 #74860
Sikachu's picture

มันควรจะกลับไป /shops ครับ :)

ต้องใช้


<%= link_to "Back to index", shops_path %>

แทนครับ

บล็อกของผม: http://sikachu.com


บล็อกของผม: http://sikachu.com

By: zdk
WriteriPhoneBlackberryUbuntu
on 9 December 2008 - 11:18 #74968 Reply to:74860
zdk's picture

อ้าว คิดว่า คำถาม คือ shop_path ลิงค์ไป /shop/(id) ใช่หรือเปล่า 55+

By: DuRiAn on 8 December 2008 - 20:57 #74879

อ่อ...ขอบคุณมากครับ
ชื่อคอนโทรลต้องมี s นั้นเอง, ผมลองเปลี่ยนชื่อคอนโทรลเลอร์เป็น shops แล้วใช้ได้ครับ
แล้วเกิดผมตั้งชื่อคอนโทรลเป็นคำนามที่มีรูปพหูพจน์ไม่มี s ล่ะครับ routes จะทำงานได้มั้ยครับ
หรือกรณีนั้นต้องไป config เอง

By: Sikachu
ContributoriPhoneIn Love
on 9 December 2008 - 01:07 #74908
Sikachu's picture

ถ้าจะใช้ 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

By: DuRiAn on 9 December 2008 - 06:37 #74922

ขอบคุณมากครับ ^_^