2010-11-09 6 views
5

Sau khi chơi xung quanh với các liên kết trong Rails cho một giờ xem tôi đã quản lý để thực sự có được một liên kết để gọi một phương pháp trong bộ điều khiển của tôi. Nhưng tôi vẫn không hiểu tại sao tất cả những nỗ lực khác của tôi đều thất bại. Im hy vọng bạn có thể giúp tôi với điều đó.Gọi một hành động điều khiển với link_to

Tôi có giàn giáo "Ô tô". Khi ở chế độ xem hiển thị cho ô tô, id muốn nhấp vào liên kết gọi phương thức "ổ đĩa" trong Bộ điều khiển ô tô của tôi.

này TRÌNH:<%= link_to "Drive", drive_car_path(@car) %>

Có vẻ như điều này chỉ hoạt động nếu tôi có điều này là routes.rb của tôi:

resources :cars do 
    member do 
    get 'drive' 
    end 
end 

Tại sao <%= link_to "Drive", car_path, :method => :drive %> không hoạt động?

Tôi có cần đặt GET trong tệp routes.rb cho mọi phương pháp tôi tạo trong bộ điều khiển của mình không?

Tôi dường như không thể tìm thấy bất kỳ trang web nào giải thích cách sử dụng liên kết cùng với các tuyến đường. Họ dường như chỉ tách rời. Các bạn có hướng dẫn nào dễ hiểu về điều này không?

+0

Từ dòng lệnh, hãy thử "tuyến đường cào" để xem tùy chọn của bạn là gì. –

Trả lời

10

Hãy thử link_to "Drive", :controller => "car", :action => "drive"

Ngoài ra, method là dành cho việc lựa chọn các phương thức HTTP (GET, POST, ...). Nó không phải là method như thường lệ.

Hãy nhớ xem Rails Routing from the Outside InThe Lowdown on Routes in Rails 3, cả hai đều là tài nguyên tuyệt vời.

+1

Ahh, "phương pháp" có ý nghĩa hơn rất nhiều ngay bây giờ. – deRailed

+0

Tất nhiên, tôi chỉ đang chờ xem có ai khác có thứ gì đó để đóng góp hay không. Tank bạn. – deRailed