2

Ruby on Rails は初めてで、次のエラー メッセージが表示され続けます。

ActionController::RoutingError in Users#index 

"No route matches {:action=>"following", :controller=>"users"}"

Showing /app/views/layouts/_navbar.html.erb......where line #19 raised:

Extracted source (around line #19):
16: </td>
17:                 </div>
18:        
19:                 <div id="secondlink"><td class="rite"><li><% if signed_in? %><%= link_to "Profile", current_user %></li><li><%= link_to "watching", following_user_path(@user)%></li><li><%= link_to "Users", users_path %></li><li><%= link_to "Sign out", signout_path, :method => :delete %>
20:       <% else %>
21: <%= link_to "Sign in", signin_path %></li><% end %>
22:      

ページ分割されたユーザーの完全なリストを表示するために (ナビゲーション バーの) リンクをクリックすると、このルーティング エラーが発生します」

私の routes.rb ファイルには次のものが含まれています。

 Mvp::Application.routes.draw do
   resources :users do
    member do
      get :following, :followers
    end
   end

UsersController の「次の」アクション:

def following
    @title = "Following"
    @user = User.find(params[:id])
    @users = @user.following.paginate(:page => params[:page])
    render 'show_follow'
end
4

2 に答える 2

2

はっきりとは言えませんが、私の最初の推測では、次のようになります。

<%= link_to "watching", following_user_path(@user)%>

変数@userはゼロです。なぜnilなのかはわかりませんが、nilの場合、これがエラーになります。

于 2012-04-10T00:35:37.017 に答える
0

rake routes出力_

following_user GET    /users/:id/following(.:format) users#following
followers_user GET    /users/:id/followers(.:format) users#followers
         users GET    /users(.:format)               users#index
               POST   /users(.:format)               users#create
      new_user GET    /users/new(.:format)           users#new
     edit_user GET    /users/:id/edit(.:format)      users#edit
          user GET    /users/:id(.:format)           users#show
               PUT    /users/:id(.:format)           users#update
               DELETE /users/:id(.:format)           users#destroy

これで、ルートとコントローラーのマッピングが定義されました。

次に確認すること:

  • 定義されfollowingたアクションはありますかUsersController

  • GETメソッドでサーバーの応答を要求していますか

于 2012-04-10T00:01:10.707 に答える