我一直在使用Active Record进行挑战时遇到困难,我阅读了文档,并看到了其他经过belongs_to
重制和工作的示例,我再也不知道在尝试调用配方时我在做什么错了。 recipe_type.name我收到错误Rails NoMethodError:“#”的未定义方法'name':String
schema.rb
create_table "recipe_types", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "recipe_type_id"
t.index ["recipe_type_id"], name: "index_recipe_types_on_recipe_type_id"
end
create_table "recipes", force: :cascade do |t|
t.string "title"
t.string "cuisine"
t.string "difficulty"
t.integer "cook_time"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "ingredients"
t.text "cook_method"
end
end
迁移
def change
create_table :recipes do |t|
t.string :title
t.string :cuisine
t.string :difficulty
t.integer :cook_time
t.timestamps
end
end
end
class AddFieldsToRecipe < ActiveRecord::Migration[5.2]
def change
add_column :recipes, :ingredients, :text
add_column :recipes, :cook_method, :text
end
end
class CreateRecipeTypes < ActiveRecord::Migration[5.2]
def change
create_table :recipe_types do |t|
t.string :name
t.timestamps
end
end
end
class AddRecipeRefToRecipeType < ActiveRecord::Migration[5.2]
def change
add_reference :recipe_types, :recipe_type, foreign_key: true
end
end
您似乎已将recipe_type
引用添加到错误的表中。您上一次的迁移可能应该是
add_reference :recipes, :recipe_type, foreign_key: true
因为按原样,您已经将reference_type引用添加到ReferenceType。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句