ruby-on-rails - 尝试将博客保存到数据库时,@blog.save 返回 false
问题描述
尝试保存新博客时,@blog.save 总是返回 false。这就是@blog 的样子: 博客 id:nil,标题:“新标题”,内容:“新内容”,users_id:1,created_at:nil,updated_at:nil
博客迁移
class CreateBlogs < ActiveRecord::Migration[5.2]
def change
create_table :blogs do |t|
t.string :title
t.text :content
t.references :users, foreign_key: true
t.timestamps
end
end
end
博客控制器代码
def create
@blog = Blog.new(blogParams)
#render plain: @blog.inspect
#return
if (@blog.save)
render plain: "OK"
#redirect_to
else
render plain: @blog.inspect
end
end
private def blogParams
params.require(:newBlog).permit(:title, :content).merge(users_id: current_user.id)
end
解决方案
在您的控制器 blogs_controllers.rb 中,在新方法 set 中:
@blog.user = current_user
并像这样更改您的 allowed_params :
params.require(:newBlog).permit(:title, :content, users_id)
我希望我对你有所帮助。
编辑 :
如上所述,约定要求用户使用单数形式。让我们处理它,没关系:
在你的 blog.rb 模型中,你必须有这个:
belongs_to :user, :foreign_key => "users_id"
推荐阅读
- r - 将 .xlsx 文件写入 S3 存储桶时出现问题
- javascript - Jquery如何更改$(this)选择器中某些类的文本
- php - 我在这个准备语句mysql中的错误是什么?
- javascript - 搜索/克隆功能不需要区分大小写并且能够优先考虑克隆的内容
- python - Python,多线程工作队列:当工作人员可能等待其他工作人员完成时,避免死锁的正确设计是什么?
- javascript - 无法保存 Ms Teams 连接器
- python - 在 python 中并行训练两个 keras 模型
- java - 在运行时更改 Spring RequestMapping 注释值
- excel - 一次查找和删除
- autodesk-forge - Autodesk Forge Viewer:如何设置对象遮挡