使用 Ruby on Rails MVC 时控制器和路由器中没有路由匹配错误

问题描述 投票:0回答:1

我是 ruby on Rails 的新手。我正在尝试使用 Active Record 测试一个简单的记录拉取示例。我在从路由器到控制器执行操作以使用 ruby on Rails 框架获取一些文章详细信息时收到以下错误,

No route matches [GET] "/home/1"

我的路由器文件内容如下,

Rails.application.routes.draw do

get "up" => "rails/health#show", as: :rails_health_check
get "service-worker" => "rails/pwa#service_worker", as: :pwa_service_worker
get "manifest" => "rails/pwa#manifest", as: :pwa_manifest

resource :pages do
 get 'home' => 'pages#home'
end
end

控制器pages_controller.rb如下所示,

class PagesController < ApplicationController
 def home

    @article = Article.find(params[:id])

 end
end

Home.html.erb 视图文件如下所示,

<div>

 <p> <% @article.title  %> </p>
 <p> <% @article.description  %></p>

</div>

这个文件位于

views/pages
文件夹下。

任何人都可以建议或指导我解决此错误吗?或者提供任何文档可供参考?

ruby-on-rails ruby routes controller action
1个回答
0
投票

简短回答

而不是

resource :pages do
  get 'home' => 'pages#home'
end

使用

get 'home/:id', to: 'pages#home'
© www.soinside.com 2019 - 2024. All rights reserved.