0

ルートに問題があります.rb

私のWebアプリケーションには、ログインフォームのある2つのページがあります

「/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」でログインを使用すると、ホームコントローラーの正しいアクション「create」が実行されるのに対し、「users / index」ページにログインすると、「post_login」ではなく「create」が再度実行されることです。 "、 どうして?

「/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
4

1 に答える 1

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"

唯一の配列で、uが使用しているアクションを追加するだけです...

于 2012-05-30T21:23:24.440 に答える