私は非ユーザモデルのビュー内にフォームを書いて、訪問者がログインできるようにしました。私はまずこれが機能しているかどうかチェックしたい。だから私はテストをするためにアクション "インデックス"を作る。URLが間違った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
コントローラのコードは何ですか?問題はそこにある。 –
レール3ルーティングは今私にスパゲッティに見える~~ – lkahtz
これはrails3のバグですか? – lkahtz