程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了我忘了在我的引用上添加属性,所以它会生成一个外键大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决我忘了在我的引用上添加属性,所以它会生成一个外键?

开发过程中遇到我忘了在我的引用上添加属性,所以它会生成一个外键的问题如何解决?下面主要结合日常开发的经验,给出你关于我忘了在我的引用上添加属性,所以它会生成一个外键的解决方法建议,希望对你解决我忘了在我的引用上添加属性,所以它会生成一个外键有所启发或帮助;

我有类 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,请注明来意。