[英]rails3 routes.rb
我一直在使用rails3 ,這里的view.html.erb表單有一個登錄按鈕,所以當我單擊該按鈕時,沒有路由匹配:controller =>'home',:action =>'login'。 但是我已經把它放在routes.rb中。 為什么會這樣呢?
view.html.erb
<%= form_tag( { :controller => 'home', :action => 'login' }, { :method
=> 'post'}) do %>
<%= text_field(:name, :name, :class => "span2",:placeholder =>
"Username") %>
<%= password_field_tag(:password, :password, :class =>"span2") %>
<%= submit_tag "Login", :class => "btn btn-primary" %>
<% end %>
**routes.rb**
resources :home
resources :home do
post :login, :on => :member
end
**homecontroller.rb**
class HomeController < ApplicationController
def login
end
end
您已經兩次定義了“ resources:home”,第一個聲明是無用的,而第二個則被覆蓋。
由於您使用了資源來定義路由(建議使用路由),因此應使用生成的幫助程序方法,在這種情況下,應使用其login_home_path
而不是舊的語法{ :controller => 'home', :action => 'login' }
第一,
在您的routes.rb中嘗試這種方式
resources :home
match '/login', to: 'home#login'
並在Submit標簽中使用login_path。
我希望登錄,注銷,創建Sessions控制器
rails generate controller Sessions --no-test-framework
對於登錄,創建new
方法,對於注銷(注銷),創建destroy
方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.