gpt4 book ai didi

mysql - 未知属性错误 Rails 5.1.1 - 无法识别具有连接表的模型属性

转载 作者:太空宇宙 更新时间:2023-11-03 16:16:08 27 4
gpt4 key购买 nike

我将展示我的文件、我的过程,然后是这篇文章中的错误。

问题Rails 控制台无法识别我在连接表上的模型属性。

(如果您能想到更好的方式来描述问题/或在阅读下文后提出这个问题,请在您的回复中告诉我,因为这将帮助我了解我试图提出的问题。)

文件

模型/admin_user.rb

class AdminUser < ApplicationRecord
has_and_belongs_to_many :pages
has_many :section_edits
end

模型/section.rb

class Section < ApplicationRecord

belongs_to :page
has_many :section_edits

end

模型/section_edit.rb

class SectionEdit < ApplicationRecord

belongs_to :sections
belongs_to :admin_users

end

来自 schema.rb 的表

create_table "admin_users", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=latin1" do |t|
t.string "first_name", limit: 25
t.string "last_name", limit: 50
t.string "email", limit: 100, default: "", null: false
t.string "username", limit: 25
t.string "hashed_password", limit: 40
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["username"], name: "index_admin_users_on_username"
end

create_table "section_edits", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=latin1" do |t|
t.integer "admin_user_id"
t.integer "section_id"
t.string "summary"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["section_id", "admin_user_id"], name: "index_section_edits_on_section_id_and_admin_user_id"
end

create_table "sections", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=latin1" do |t|
t.integer "page_id"
t.string "name"
t.integer "position"
t.boolean "visible", default: false
t.string "content_type"
t.text "content"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["page_id"], name: "index_sections_on_page_id"
end

过程

  1. 我在 cloud9 IDE 上使用 rails -c 启动 Rails 控制台。
  2. 我创建了一个 AdminUser 并分配给变量“me”。下面是变量“me”的返回值:

    me

    => <#AdminUser id: 1, first_name: "john", last_name: "smith", email:"", username: "jsmith", hashed_password: nil, created_at: "2017-06-17 14:00:44", updated_at: "2017-06-17 14:00:44"> 
  3. 我创建一个 Section 并分配给一个变量“section”以下是“section”的返回值:

    section

    => <#Section id: 1, page_id: nil, name: "Section One", position: 1, visible: false, content_type: nil, content: nil, created_at: "2017-06-17 14:20:08", updated_at: "2017-06-17 14:20:08">
  4. 我尝试创建一个新的 SectionEdit,如下所示:

    edit = SectionEdit.new(:summary => 'Test Edit', :admin_user => me, :section => section)

错误

rails console 向我抛回这个错误:

ActiveModel::UnknownAttributeError: unknown attribute 'admin_user' for SectionEdit.
from (irb):24

我在观看和跟随 lynda.com 的 Rails 5 教程时执行了所有这些操作。这很烦人,因为讲师能够完成实例创建并将其保存到数据库中。我是否错过了 rails 5 -> 5.1.1 中的某些内容?非常感谢对此的任何帮助。

最佳答案

尝试在 SectionEdit 模型中使用单数名称:

class SectionEdit < ApplicationRecord
belongs_to :section
belongs_to :admin_user
end

关于mysql - 未知属性错误 Rails 5.1.1 - 无法识别具有连接表的模型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44611518/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com