Tôi vừa mới bắt đầu đùa giỡn với Ruby on Rails và đã gặp một vấn đề liên quan đến một hành động khác trong bộ điều khiển từ một góc nhìn cụ thể. Tôi gần như chắc chắn đó là một vấn đề (hoặc thiếu mã) trong tập tin routes.rb
của tôi, nhưng tôi nghĩ rằng tôi hiểu lầm chính xác cách thức hoạt động của tệp này & những gì tôi phải làm. Tôi đã có một giải pháp nhưng chắc chắn nó không phải là "cách tốt nhất" để làm điều đó.Sử dụng liên kết Ruby on Rails để liên kết với hành động điều khiển
Tôi có một bộ điều khiển được gọi là home
với hai hành động, index
(là mặc định) và newbill
. Bên index.html.erb
tôi có:
<h1>Home View</h1>
<%= link_to "new", :controller => "home", :action => "newbill" %>
Tuy nhiên tôi đã nhận được một lỗi định tuyến:
No route matches {:controller=>"home", :action=>"newbill"}
Làm rake routes
mang lại cho tôi những điều sau đây:
root/{:controller=>"home", :action=>"index"}
sau đó tôi (sau đây một số Googling) bổ sung này mã số để routes.rb
match 'home/newbill' => 'home#newbill', :as => :newbill
Và sau đó trong index.html.erb
của tôi, tôi đã nhận điều này:
<%= link_to "Name", newbill_path %>
Và hiện đang làm việc này như mong đợi. Tuy nhiên, câu hỏi của tôi là:
- Tại sao tính năng này hoạt động? Chính xác những gì đang xảy ra đằng sau hậu trường?
- Chắc chắn đây không phải là cách tốt nhất để làm điều đó? Thêm một số khác
match 'home/newbill'...
cho mọi bộ điều khiển/hành động mà tôi muốn liên kết đến dường như là một cách làm việc rác rưởi.
Tôi thực sự thích Ruby, nhưng phải vật lộn một chút với khía cạnh này của Rails ... định tuyến nói chung là làm rối tung đầu của tôi một chút tôi nghĩ!
Bất kỳ giúp đỡ được nhiều đánh giá cao: D
Cảm ơn,
Jack
Chúng tôi biết có tài liệu ở đó. -1 nếu tôi có thể vì điều này không cung cấp bất kỳ trợ giúp thực sự nào. – karns
@karns Câu hỏi của người này là "Tại sao sử dụng công cụ định tuyến trong công việc thời trang quy định?". Tôi có thể loại bỏ câu trả lời thực sự (đã được thực hiện trong hướng dẫn định tuyến Rails) hoặc chỉ đơn giản là chỉ cho anh ta. Anh ta muốn hiểu cách thức hoạt động của định tuyến và có một tài liệu chính thức rõ ràng giải thích nó một cách chi tiết. Tôi không thấy vấn đề? –