Tôi mới sử dụng Rails và chỉ đang triển khai một số ứng dụng cơ bản. Chỉ cần bắt đầu vào ứng dụng thứ hai của tôi và đã chạy vào một vấn đề cơ bản là gì, nhưng Google đang cho tôi không có gì.Ruby on rails "Không có tuyến đường phù hợp"
Bắt lỗi này:
No route matches {:controller=>"user", :action=>"admin_login"}
Đây là routes.rb tôi
Blah::Application.routes.draw do
resources :items, :cart, :user
end
Đây là tôi applications.html.erb
(ý tưởng là đây là một tiêu đề tất nhiên, và tôi đang cố gắng để tạo ra một liên kết để 'đăng nhập'. Ngay bây giờ, bạn chỉ cần đặt biến phiên 'đăng nhập' thành '1'.
<!DOCTYPE html>
<html>
<head>
<title>Blah</title>
<%= stylesheet_link_tag :all %>
<%= javascript_include_tag :defaults %>
<%= csrf_meta_tag %>
</head>
<body>
<div id="headerHolder">
<div id="title">blah</div>
<div id="menu">
<div class ="menuItem">blog</div>
<div class ="menuItem">
<%= link_to "products", :controller => "items",
:action => "index" %>
</div>
<div class ="menuItem">contact</div>
<div class="menuItem">
<%= link_to "cart", :controller => "cart",
:action => "index" %>
</div>
<div class="menuItem">
<%= link_to_unless_current "admin", :controller => "user",
:action => "admin_login" %>
</div>
</div>
</div>
<div id="content">
<%= yield %>
</div>
</body>
</html>
Và đây là user_controller.rb của tôi
class UserController < ApplicationController
def index
end
def admin_login
session[:login] = 1
session[:cart] = nil
flash[:notice] = "Admin user successfully logged in, cart reset."
redirect_to :controller => :items
end
end
Tôi đang thiếu gì trong số routes.rb
? Hay nói cách khác ... chắc chắn nó là một thứ gì đó.
để định tuyến các 'tài nguyên' tự động chỉ xử lý 'index' và phương pháp phải đối mặt với công chúng được truy cập thông qua các động từ html? – Chris
Có, các phương pháp tạo giàn giáo được thêm vào thông qua tài nguyên. – Anubhaw