ข้อผิดพลาดในการจับคู่เส้นทาง

ฉันได้รับข้อผิดพลาดจากรางที่บ่นเกี่ยวกับเส้นทาง

นี่คือลิงค์

link_to 'Add New Rate', new_owner_property_rate_path

ข้อผิดพลาด

No route matches {:action=>"new", :controller=>"owner/rates"}

เส้นทางดูสวยงามราวกับเสาะหาเส้นทางที่ได้มาเส้นเส้นทางนี้

new_owner_property_rate GET    /owner/properties/:property_id/rates/new(.:format)      {:action=>"new", :controller=>"owner/rates"}

นี่คือไฟล์เส้นทางของฉัน ซึ่งนั่งอยู่ในโฟลเดอร์ชื่อเจ้าของ ดังนั้นเนมสเปซ

namespace :owner do
  resources :properties do
    resources :rates
  end   
  root :to => "home#index"
end

ผู้ควบคุมอัตรา

class Owner::RatesController < Owner::BaseController

  def index
    @rates = Rate.all
  end

  def new
    @property = Property.find(params[:property_id])
    @rate = Rate.new
  end
end

ฉันสามารถเข้าสู่เส้นทางด้วยตนเองได้หรือไม่?

ความคิดใด ๆ


person Lee    schedule 26.02.2011    source แหล่งที่มา


คำตอบ (2)


ดูเหมือนว่าคุณอาจไม่ได้โหลดเส้นทางใหม่อย่างถูกต้องใช่ไหม? ลองรีสตาร์ทเซิร์ฟเวอร์แอป Rails ของคุณ ฉันเคยเห็นเส้นทางที่ไม่สามารถจดจำได้ แม้ว่าเส้นทางที่ระบุชื่อนั้นจะถูกโหลดอย่างถูกต้องและได้กำหนดเส้นทางไว้แล้ว

เคล็ดลับที่ดีในการทดสอบเส้นทางที่มีชื่อคือการเปิดคอนโซล Rails (./script/console) และการอ้างอิงบนทางลัด "แอป" ดังนี้:

$> ./script/console
Loading development environment (Rails 2.3.5)
>> app.new_owner_property_rate_path
NoMethodError: undefined method `new_owner_property_rate_path' for #<ActionController::Integration::Session:0x109bd1a78>
        from vendor/rails/actionpack/lib/action_controller/test_process.rb:511:in `method_missing'
        from (irb):1
>> 

นี่เป็นวิธีที่ง่ายที่สุดที่ฉันทราบในการตรวจสอบเส้นทางใหม่และทดสอบนิพจน์ตัวอย่างหรือเส้นทางที่มีชื่อ สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับการตรวจสอบเส้นทางที่กำหนดพารามิเตอร์ซึ่งมีข้อผิดพลาดแปลกๆ

แก้ไข: หมายเหตุ มีวัตถุชื่อ "แอป" อยู่ในคอนโซล Rails ซึ่งเป็นการอ้างอิงถึงแอปพลิเคชัน Rails ของคุณและให้คุณทดสอบเส้นทางที่มีชื่อและแง่มุมอื่น ๆ ของแอปพลิเคชัน

person Winfield    schedule 26.02.2011
comment
ขออภัย แต่ฉันได้โหลดไฟล์เส้นทางใหม่และรีสตาร์ทเซิร์ฟเวอร์ ฉันลองใช้เส้นทางในคอนโซลแล้ว แต่เส้นทางนั้นไม่ตรงกันเลย ฉันไม่เข้าใจเพราะทุกอย่างลงตัวสำหรับฉัน - person Lee; 27.02.2011

เจอแล้ว. ฉันต้องเพิ่มวัตถุในเส้นทางเช่น

new_owner_property_rate_path(@property)
person Lee    schedule 27.02.2011