2011-11-07 23 views
5

Trong Rails của tôi 3.1 ứng dụng, tôi có một mô hình có tên là "trẻ em"Rails tuyến đường không làm việc sử dụng tài nguyên: mô hình

Trong tập tin routes.rb tôi, tôi có dòng:

resources :children 

Đây là toàn bộ văn bản routes.rb:

root :to => "pages#home" 

    resources :children 

Dưới đây là kết quả các tuyến đường đầy đủ cào (lưu ý rằng phần lớn các tuyến đường có liên quan đến ActiveAdmin):

    children GET  /children(.:format)      {:action=>"index", :controller=>"children"} 
          POST  /children(.:format)      {:action=>"create", :controller=>"children"} 
       new_child GET  /children/new(.:format)     {:action=>"new", :controller=>"children"} 
       edit_child GET  /children/:id/edit(.:format)    {:action=>"edit", :controller=>"children"} 
        child GET  /children/:id(.:format)     {:action=>"show", :controller=>"children"} 
          PUT  /children/:id(.:format)     {:action=>"update", :controller=>"children"} 
          DELETE  /children/:id(.:format)     {:action=>"destroy", :controller=>"children"} 

Khi tôi chạy "các tuyến đường cào" Tôi thấy dòng này trong các kết quả:

children GET /children(.:format) {:action=>"index", :controller=>"children"} 

Đây là mã trong ChildrenController tôi:

 def index 
     @children = Child.all 

     @base_class = "children-index" 
     @title = "Your Children" 

     respond_to do |format| 
      format.html # children/index.html.erb 
      format.json { render :json => @children } 
     end 
    end 

    def show 
     @child = Child.find(params[:id]) 

     @base_class = "child-show" 
     @title = child_name(@child) 

     respond_to do |format| 
      format.html # children/show.html.erb 
      format.json { render :json => @child } 
     end 
    end 

Khi tôi truy cập vào url "/ trẻ em "Tôi nhận được lỗi này:

No route matches {:action=>"show", :controller=>"children"} 

Đây là dấu vết đầy đủ:

Started GET "/children" for 127.0.0.1 at 2011-11-07 13:06:24 -0600 
    Processing by ChildrenController#index as HTML 
    Child Load (0.8ms) SELECT `children`.* FROM `children` 
Rendered children/index.html.erb within layouts/application (65.0ms) 
Completed 500 Internal Server Error in 166ms 

ActionView::Template::Error (No route matches {:action=>"show", :controller=>"children"}): 
    1: <h1><%= title %></h1> 
    2: <ul> 
    3: <%= @children.each do |child| %> 
    4:  <li><%= link_to child.child_name(child), child_path(@child) %></li> 
    5: <% end %> 
    6: </ul> 
    app/views/children/index.html.erb:4:in `block in _app_views_children_index_html_erb__674498165009231817_70298485459960' 
    app/views/children/index.html.erb:3:in `each' 
    app/views/children/index.html.erb:3:in `_app_views_children_index_html_erb__674498165009231817_70298485459960' 
    app/controllers/children_controller.rb:9:in `index' 

Rendered /.rvm/gems/ruby-1.9.2-p290/gems/actionpack-3.1.0/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (0.5ms) 

Tại sao "/ trẻ em" cố thực hiện hành động "hiển thị" và tại sao hành động hiển thị hoạt động như tuyến đường không có ở đó? Tất cả các mô hình khác của tôi đã hoạt động tốt, cho đến nay sử dụng hướng dẫn "tài nguyên: mô hình".

+0

Bạn có thể gửi tập tin toàn bộ các tuyến đường của bạn? Có thể có điều gì đó cản trở –

+0

bạn có thể cung cấp đoạn mã nơi liên kết hiển thị không? – ck3g

+0

Bạn có thể chỉnh sửa câu hỏi của mình để thêm đầu ra của 'các tuyến đường rake' không? –

Trả lời

5

trong đầu ra của máy chủ, chúng tôi có: Processing by ChildrenController#index as HTML xác nhận tuyến đường là đúng.

nhưng bên trong mẫu của bạn, bạn đang sử dụng tuyến đường mà máy chủ không thể tìm thấy.

ActionView :: Template :: Lỗi (No trận tuyến đường {: action => "hiển thị",: controller => "trẻ em"}):

1: <h1><%= title %></h1> 
2: <ul> 
3: <%= @children.each do |child| %> 
4:  <li><%= link_to child.child_name(child), child_path(@child) %></li> 
5: <% end %> 
6: </ul> 

chính xác hơn, phù hợp 4 bạn có một vấn đề, có thể ở đây: child_path(@child)

bạn đang sử dụng bất kỳ id tùy chỉnh nào cho mô hình của mình (ghi đè phương thức to_param)?


chỉ để làm cho nó rõ ràng, đây không phải là lỗi đường, là một lỗi mẫu

+0

Ah, tôi hiểu. Tôi là một chút noob tại Rails để biết mỗi nơi để xem xét, nhưng toàn bộ câu hỏi này chỉ cho tôi một con đường cho xử lý sự cố trong tương lai. Tôi nghĩ tôi có thể tìm ra việc cần làm từ đây. – wrburgess

+1

đừng lo lắng, khi bạn đang học là không sao để mắc lỗi. –

Các vấn đề liên quan