我认为我已经正确设置了所有内容,但是当我尝试访问dashboards_posts_path时,它将引导到dashboard_path view而不是app> app> views> views> dashboards> ports#index view。我不明白为什么。
路由器
namespace :dashboards do
resources :posts
resources :tags
resources :ingredients
resources :comments
resources :pages
resources :users
end
控制器
class Dashboards::PostsController < DashboardsController
# before_action :admin_authorize, only: [:new, :create, :edit, :update, :destroy]
protect_from_forgery with: :null_session
layout "dashboards"
def current_user
if session[:user_id]
@current_user = User.find(session[:user_id])
end
end
def index
@posts = Post.newest.paginate(page: params[:page], per_page: 3)
@all_posts = Post.all
end
end
视图
路线
log
您的问题是您在所有namespace :dashboards
的东西之前定义的resources :dashboard
(我在猜测)。请记住,路由可以从上到下解析。因此,路由将GET dashboards/posts
解析到dashboards/:id
,这就是为什么您将DashboardsController#show
与posts
的CC_5路由。
为什么不尝试:
resources :dashboards do
resources :posts
resources :tags
resources :ingredients
resources :comments
resources :pages
resources :users
end
应该正确解析的。
另外,将resources :dashboards
放在之后的命名空间内容之后,例如:
namespace :dashboards do
resources :posts
resources :tags
resources :ingredients
resources :comments
resources :pages
resources :users
end
resources :dashboards