使用 Rails 中的资源无法获得可用的路由

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

我正在尝试通过实现一个测试应用程序来学习 Ruby On Rails MVC 框架,我试图在其中创建表单提交和列表记录。我正在使用资源方式在 router.rb 文件中定义到控制器的路由。但是当我尝试使用控制器加载页面时,我遇到了错误,

No route matches

我的路由器文件routes.rb如下所示,

`No route matches [GET] "/new"`

控制器文章_controller.rb

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 #get 'home/:id', to: 'articles#home' #get 'details', to: 'articles#details' #get 'new', to:'articles#new' resources :articles end

我的视图文件new.html.erb,

class ArticlesController < ApplicationController def home @article = Article.find(params[:id]) end def details @articledetails = Article.all end def new end def create @article = Article.new(params.require(:article).permit(:title, :description)) @article.save redirect_to @article end end

故障排除方法,

我在项目根目录命令提示符中应用了以下命令。但它没有列出文章路线。

铁路路线——扩展

这里如何根据router.rb定义启用路由?任何人都可以建议或指导我解决此错误吗?或者提供任何文档可供参考吗?

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

<h1>Create a new article</h1> <%= form_with scope: :article, url: articles_path, local: true do |f| %> <p> <%= f.label :title %><br/> <%= f.text_field :title %> </p> <p> <%= f.label :description %><br/> <%= f.text_area :description %> </p> <p> <%= f.submit %> </p> <% end %>

但应该有

#get 'new', to:'articles#new'

然后你就会有
get 'new', to:'articles#new'

网址

或者如果您想使用

/new

那么你在浏览器中的网址应该是

resources :articles

(而不是

/articles/new
    

© www.soinside.com 2019 - 2024. All rights reserved.