我是 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
文件夹下。
任何人都可以建议或指导我解决此错误吗?或者提供任何文档可供参考?
简短回答
而不是
resource :pages do
get 'home' => 'pages#home'
end
使用
get 'home/:id', to: 'pages#home'