การกำหนดเส้นทางใน Rails3 พร้อมรหัสหลักที่กำหนดเอง

ฉันมีโมเดลที่มีคีย์หลักแบบกำหนดเอง:

เอกสาร.rb

class Document < ActiveRecord::Base
  set_primary_key "token"
end

เส้นทาง.rb:

MyApp::Application.routes.draw do
  resources :documents, :only => [:index, :show, :create]
end

เมื่อฉันสร้างเอกสารใหม่ ฉันได้รับข้อผิดพลาด:

No route matches {:controller=>"documents", :id=>#<Document id: "b430cfe73aaa5235fbfe", token: "b430cfe73aaa...

เมื่อฉันเปลี่ยนไปใช้ :id เป็นคีย์หลัก ทุกอย่างก็โอเค แต่ฉันจำเป็นต้องใช้โทเค็น

ฉันใช้: rails 3.0.0 และ ruby ​​1.8.7 (19-04-2553 patchlevel 253) [i686-linux], MBARI 0x8770, Ruby Enterprise Edition 2010.02

ขอบคุณที่ช่วยเหลือ.


person boblin    schedule 22.09.2010    source แหล่งที่มา


คำตอบ (1)


ลองเพิ่มใน document.rb

def to_param
 token
end
person Yannis    schedule 22.09.2010