ruby-on-rails - rails中未定义的方法“blog_path”
问题描述
我试图将现有项目从 sqlite3 基础更改为 postgresql 基础,但我遇到了最后一个错误,我不知道如何解决。
以下 html 文件中的 blog_path 启动未定义方法 'blog_path' 错误
<!DOCTYPE html>
<html>
<head>
<title>My Blog</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous">
</head>
<body>
<h1>My Blogs</h1>
<div class="main">
<div class="left-block">
</div>
<div class="blog-container">
<% @blogs = @blogs.reverse %>
<% @blogs.each do |blog| %>
<div class="blog">
<p class="title"><%= blog.title %></p>
<p class="time"><%= blog.created_at %></p>
<%= link_to 'Learn More', blog_path(blog), class: "btn btn-info" %>
</div>
<% end %>
</div>
<div class="right-block">
</div>
</div>
<footer>
<%= link_to 'New Blog', '/blogs/new', class: "btn btn-primary" %>
</footer>
</body>
</html>
这是博客类
class Blog < ApplicationRecord
end
这是配置文件夹中的 route.rb
Rails.application.routes.draw do
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
get '/blogs' => 'blogs#index'
get '/blogs/new' => 'blogs#new'
post '/blogs' => 'blogs#create'
get '/blogs/:id' => 'blogs#show'
get '/blogs/:id/edit' => 'blogs#edit'
patch '/blogs/:id' => 'blogs#update'
delete '/blogs/:id' => 'blogs#destroy'
end
这是 blogs_controller.rb
class BlogsController < ApplicationController
def index
@blogs = Blog.all
end
def new
@blog = Blog.new
end
def create
@blog = Blog.new(blog_params)
if @blog.save
redirect_to blogs_url
else
render 'new'
end
end
def show
@blog = Blog.find(params[:id])
end
def edit
@blog = Blog.find(params[:id])
end
def update
@blog = Blog.find(params[:id])
@blog.update_attributes(blog_params)
redirect_to blogs_url
end
def destroy
@blog = Blog.find(params[:id])
@blog.destroy
redirect_to blogs_url
end
private
def blog_params
params.require(:blog).permit(:title, :content)
end
end
**请让我知道是否需要任何其他资源来解决此问题。
解决方案
您应该resources :blogs
在路线文件中使用,而不是单独定义每条路线
推荐阅读
- fontforge - 如何为多个字符使用相同的字形?
- python - GridSearchCV 是否总能提高分类或回归模型的模型准确性?
- python - 我不断收到此错误,但我不知道为什么(TypeError: __init__() 需要 2 个位置参数,但给出了 3 个)
- python - 如何向 Flask rest API 添加基本授权?
- vba - Word 中的 VBA 代码,用于检查当前宏是否为最新版本
- python - 即时将数据写入 CSV 并使用快速 api 下载文件
- dialog - 任何人都可以告诉这个对话框有什么问题吗?
- angular10 - Angular 10 升级错误:TS2300:重复标识符“IteratorResult”
- javascript - 创建可嵌入的倒数计时器图像
- bluetooth-lowenergy - ESP32 上的 MicroPython:BLE 发送/接收字符串