簡體   English   中英

rails3 route.rb

[英]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' }

第一,

  • 您聲明資源:home兩次。

在您的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM