我遇到了routes.rb
的问题在我的网络应用程序中,我有两个页面,其中包含登录表单
“/ home / index”和“/ users / index”
这是我的路线档案
controller :home do
get 'login' => :index
post 'login' => :create
end
controller :users do
get 'login' => :index
post 'login' => :post_login
end
get "home/index"
get "home/create"
get "home/show"
get "private/index"
get "users/index"
get "users/get_login"
get "users/post_login"
resources :users do
collection do
get 'get_login'
post 'post_login'
end
end
问题是,如果我使用“home / index”登录,它会执行正确的操作“创建”家庭控制器,而如果我登录“用户/索引”页面,它再次执行“创建”而不是“post_login”,为什么?
我在“/ home / index”和“/ users / index”中用于表单的代码是相同的......
这是简单的表格
<%= form_tag do %>
<table>
<tr>
<td>
<%= text_field_tag :name, params[:name] %>
</td>
</tr>
<tr>
<td>
<%= password_field_tag :password, params[:password] %>
</td>
</tr>
<tr>
<td>
<%= submit_tag "Login" %>
</td>
</tr>
<% end %>
<tr>
<td>
<%= link_to 'Registrazione', users_index_url %>
</td>
</tr>
</table>
用户控制器代码:
class UsersController < ApplicationController
def index
end
def post_login
redirect_to "http://www.google.it"
end
end
答案 0 :(得分:0)
我会有用户,只作为资源:
controller :home do
get 'login' => :index
post 'login' => :create
end
get "/users" => 'users#index'
post "/users" => 'users#post_login'
get "home/index"
get "home/create"
get "home/show"
get "private/index"
在唯一的数组中,只需添加您正在使用的操作...