仪表板名称空间的导轨路由帮助



我认为我已经正确设置了所有内容,但是当我尝试访问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#showposts的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

最新更新