我有一個用戶,評論,路線如圖所示模型:Ruby on Rails的嵌套資源路由錯誤
class User < ActiveRecord::Base
has_many :routes, :dependent => :destroy
has_many :comments, :dependent => :destroy
end
class Route < ActiveRecord::Base
belongs_to :user
end
class Comment < ActiveRecord::Base
belongs_to :user
end
我有routes.rb中文件嵌套內用戶的意見和路線如圖所示:
MyApp::Application.routes.draw do
resources :users do
resources :comments
resources :routes
end
當我運行「耙路線」,到Routes_controller指數的路線會出現像這樣:
user_routes GET /users/:user_id/routes(.:format) {:action =>"index", :controller=>"routes"}
然而,由於某些原因當用戶登錄時,我收到路由錯誤,指出無法找到路由控制器。當系統在會話控制器中發佈新會話時會發生這種情況。我知道它試圖登錄用戶,但重定向失敗。有什麼建議麼?
class SessionsController < ApplicationController
...
def create
user = User.authenticate(params[:session][:email],
params[:session][:password])
if user.nil?
flash.now[:error] = "Invalid email/password combination."
@title = "Sign in"
render 'new'
else
sign_in user
redirect_to user_routes_path
end
end
...
end
出於某種原因,當我重定向到user_routes_path沒有顯示堆棧跟蹤,所以我必須直接到root_path,同樣的事情發生了。下面是與追蹤:
app/views/layouts/_header.html.erb:3:in
`_app_views_layouts__header_html_erb___917786942_46449696_315190'
app/views/layouts/application.html.erb:11:in
`_app_views_layouts_application_html_erb__423035099_46500948_0'
你的'user_routes_path'應該至少有一個'user_id'。但這不是你的問題......你可以添加路由錯誤的堆棧跟蹤嗎? – mliebelt
@mliebelt我添加了堆棧跟蹤 – Andrew