有人可以找到“未知属性”我的语法/逻辑错误是一个多对多的种子创建方法时,在Rails的连接表?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有人可以找到“未知属性”我的语法/逻辑错误是一个多对多的种子创建方法时,在Rails的连接表?相关的知识,希望对你有一定的参考价值。

该项目是建立一个web应用程序,我将用它来记录和跟踪我的力量训练课。其中一个表/模型是连接演习和训练的正文部分连接表。

下面是练习表迁移:

# migration: successfully creates the join table
class CreateExerciseBodyparts < ActiveRecord::Migration[5.2]
  def change
    create_table :exercise_bodyparts do |t|
      t.references :exercise, foreign_key: true
      t.references :bodypart, foreign_key: true
      t.timestamps
    end
  end
end

下面是表的种子数据:

# seed data snippet: no syntax errors here
def exercise_bodyparts_list
  return [
    {
      name: "Barbell Back Squats",
      bodyparts: ["Quads","Hamstrings","Adductors","Abductors","Glutes","Lower Back","Abs"]
    },
    {
      name: "Barbell Biceps Curls ~0°",
      bodyparts: ["Biceps","Forearms"]
    },
    {
      name: "Barbell Biceps Curls ~45°",
      bodyparts: ["Biceps","Forearms"]
    },
    #(...)
  ]
end

这里是我的种方法来填充数据库:

# seed method: where the error comes...
exercise_bodyparts_list.each do |ex_body|
  ex_body[:bodyparts].each do |bodypart|
    ExerciseBodypart.create!(
      exercise: Exercise.find_by_name(ex_body[:name]),
      bodypart: Bodypart.find_by_name(bodypart)
      )
  end
end

以下是错误信息:

# error message:
ActiveModel::UnknownAttributeError: unknown attribute 'exercise' for ExerciseBodypart.
答案

我不知道确切的原因,但它是为我工作在rake rails-3任务内,但失败rails-5同时更新应用到更高的版本。

我建议你试试以下,以下为我工作,

exercise_id: Exercise.find_by_name(ex_body[:name]).id
另一答案

我从另一个Ruby开发谁说我应该是命名与belongs_to模型的关系性质的咨询意见

我确实做到了和逻辑工程确定。

我的模型看起来是这样的:

class ExerciseBodypart < ApplicationRecord
  belongs_to :exercise
  belongs_to :bodypart
end

你瞧,这是关键。这espressed模型在我的其他项目不存在关系;但我怀疑,我们的关系从其他型号的连接取 - 因为它是多了很多的模型更复杂的数据库。

以上是关于有人可以找到“未知属性”我的语法/逻辑错误是一个多对多的种子创建方法时,在Rails的连接表?的主要内容,如果未能解决你的问题,请参考以下文章

有人可以在我的矩阵旋转代码中找到错误吗?

Rails:红宝石在导轨上的未知属性错误

Webpack 错误 - configuration.node 具有未知属性“fs”

SQL常见错误总结

给出“未知属性”错误的指令

PHP,Yii - 未知属性异常