routes.rb的问题

时间:2012-05-30 21:17:07

标签: ruby-on-rails ruby-on-rails-3

我遇到了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

1 个答案:

答案 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"

在唯一的数组中,只需添加您正在使用的操作...