0

私はこの[質問]で同じ状況を部分的に解決しました:routes.rbの問題

これで、「/ users / index」に、ログインフォームと登録フォームの2つのフォームがあります。users_controllerでpost_loginとpost_registrationの2つの異なるアクションを作成し、別のページにリダイレクトするだけですが、ボタンをクリックすると同じエラーが発生します。[POST]"/users"に一致するルートはありません

これが私のroutes.rbコードです

Mysite::Application.routes.draw do

  controller :home do
    get     'login'   => :index
    post    'login'   => :create
  end

  resources :users, :only => [:index] do
      get     'login'         => :index
      post    'login'         => :post_login
      get     'registration'  => :index
      post    'registration'  => :post_registration
    collection do
      post 'post_login'
      post 'post_registration'
    end
  end

#  get "/users" => 'users#index'
#  post "/users" => 'users#post_login'

  get "home/index"

  get "home/create"

  get "home/show"

  get "private/index"

  get "users/index"

  get "users/post_login"

  get "users/post_registration"

end

ここにいる間、私のform_registration..。

<%= 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 "Registration" %>            
            </td>
        </tr>
<% end %>

    </table>

...およびform_login

<%= 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' %>              
            </td>
        </tr>

    </table>

問題はどこだ?

4

1 に答える 1

1

フォームタグを次のように変更してみてください。

<%= form_tag('/users/post_registration', :method => :post) %>

登録用、および:

<%= form_tag('/users/post_login', :method => :post) %>

ログイン用。':method =>:post'オプションは厳密には必要ありませんが、明示的にすることは問題ありません。

于 2012-05-31T21:26:55.523 に答える