大佬教程收集整理的这篇文章主要介绍了我忘了在我的引用上添加属性,所以它会生成一个外键,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有类 Devisecreateusers、CreateCategorIEs 和 CreateTasks <:migration>
在 CreateTasks 下
class CreateTasks < ActiveRecord::Migration[6.1]
def change
create_table :tasks do |t|
t.String :taskname
t.text :taskbody
t.String :time
t.references :category -----> I forgot to add null: false,foreign_key:true
t.timestamps
end
end
end
现在我正在尝试创建一个新任务
def create
@categorIEs = category.find(params[:category_ID])
@tasks = @categorIEs.tasks.create(category_params)
if @tasks.save
redirect_to category_tasks_path
else
render :new
end
end
def category_params
params.require(:task).permit(:taskname,:taskbody,:timE)
end
它没有保存任务。我在想我忘记添加的 null: false,foreign_key:true
是否与此有关。
我试图在 task#create
上告别:
@categorIEs = category.find(params[:category_ID])
@tasks = @categorIEs.tasks.create(category_params)
参数在那里,但任务 ID 为零。
如果 null: false,foreign_key:true
与此有关,我如何仅更新任务的属性,以便将其引用到类别?
我看到了 Rails 迁移......但我不确定我是否能够只为完成任务而做到这一点。
我看不到全貌,因为你没有分享你的 Task 模型。你那里有任何验证吗?此外,我认为尝试通过类别创建任务不是一个好习惯。我认为您应该尝试在控制台上运行以下内容并查看结果:
def bar(foo: Callable,arg: Optional[int] = NonE) -> float:
if arg:
return foo(arg)
return foo()
这应该要么保存,要么告诉您验证失败的原因。
,正如我从您的日志中看到的,我认为您的迁移中缺少用户,请回滚然后将 t.references :user
添加到 CreateTasks
迁移,然后再次迁移。我认为错误会消失。
以上是大佬教程为你收集整理的我忘了在我的引用上添加属性,所以它会生成一个外键全部内容,希望文章能够帮你解决我忘了在我的引用上添加属性,所以它会生成一个外键所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。