0

奇妙な問題があります。サインインして URL からホームに戻ろうとすると、次のエラーが表示されます。localhost:3000/

" {:action="schedule", :controller="users"} に一致するルートはありません "

ここに routes.rb があります:

Ikky::Application.routes.draw do
  root to: 'static_pages#home'

  resources :users do
    member do
      get 'schedule'
    end
  end

rake routes以下を返します:

         root        /                             static_pages#home
schedule_user GET    /users/:id/schedule(.:format) users#schedule
        users GET    /users(.:format)              users#index
              POST   /users(.:format)              users#create
[...]

この問題は、私の schedule_user ルートを導入したときに発生しました。

これが私の users_controller です:

class UsersController < ApplicationController

before_filter :signed_in_user, only: [:index, :edit, :update, :destroy, :schedule]
before_filter :correct_user,   only: [:edit, :update]
before_filter :admin_user,     only: :destroy

  def schedule
    @user = User.find(params[:id])
    @spots = @user.spots.paginate(page: params[:page])
    @spot = current_user.spots.build if signed_in?
  end

そして、ここに static_pages_controller があります:

class StaticPagesController < ApplicationController

  def home
    @spot = current_user.spots.build if signed_in?
  end

これは部分的な shared/user_info です:

<a href="<%= user_path(current_user) %>">

  <%= gravatar_for current_user, size: 52 %>
</a>
<h1>
  <%= current_user.name %>
</h1>
<span>
  <%= link_to "view my profile", current_user %>
</span>
<span>
  <%= pluralize(current_user.spots.count, "spots") %>
</span>

ご協力ありがとうございました!

PS : 私は初心者ですので、私のコードが混乱していたら申し訳ありません...

4

1 に答える 1

0

通常、memberpath なしで配置すると発生しidます。例: link_to "A", 'users/schedule' or schedule_user_path.

'users/#{user.id}/schedule'またはへのリンクを修正して、この問題を解決してください。schedule_user_path(user.id)

于 2013-05-22T09:47:06.100 に答える