我在非用戶模型的視圖中寫了一個表單,允許訪問者登錄。我想先檢查一下這是否正常。所以我讓行動「索引」進行測試。導軌路由到錯誤的URL
<%form_tag(:controller=>"users",:action=>"index") do %>
Name: <%=text_field_tag "name" %><br>
Password: <%=password_field_tag "password" %><br>
<%=submit_tag "Login" %>
<% end -%>
出人意料的是,軌道路徑引導頁的「新」的觀點,而瀏覽器的導航欄仍顯示:
http://0.0.0.0:3000/users
當我刷新頁面,它會顯示正常的「索引」頁面。
這是怎麼發生的?
更令人毛骨悚然的是,當我將上述代碼中的:action
更改爲:action=>"new"
時,屏幕顯示「路由錯誤」。當我刷新它時,它會呈現正常的「新」視圖。
的users_controller.rb
如下:
class UsersController < ApplicationController
def index
@users=User.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @users }
end
end
def show
@user = User.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @user }
end
end
def login
flash[:notice]="Hello";
end
def new
end
def create
@user = User.new(params[:project])
respond_to do |format|
if @user.save
format.html { redirect_to(@user, :notice => 'user was successfully created.') }
format.xml { render :xml => @user, :status => :created, :location => @user }
else
format.html { render :action => "new" }
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
end
end
end
end
我的routes.rb去如下:
Testdrive::Application.routes.draw do
resources :users do
member do
post 'login'
end
end
resources :cars
控制器的代碼是什麼?問題在於此。 – 2011-01-23 14:00:21
rails 3佈線對我來說好像是一條意大利麪~~ – lkahtz 2011-01-23 14:13:05
這是一個rails3的bug嗎? – lkahtz 2011-01-23 14:43:30