【问题标题】:Why my user_id is updated to null?为什么我的 user_id 更新为 null?
【发布时间】:2017-02-16 10:04:29
【问题描述】:

我有 2 个模型供用户(amitians)使用,另一个是 about.rb 来存储他们的详细信息 他们之间有一个 has_one 关系,但问题是每当我创建一个关于我的 about 表的新时都有一个 amitan_id = null

当我尝试在 Rails 控制台中做同样的事情时。它工作正常。

这是我的模型代码

About_amitians.rb

class AboutAmitian < ApplicationRecord
  belongs_to :amitian
end

阿米提安.rb

has_one :about_amitian , foreign_key: "amitian_id"

我的 AboutAmitian 控制器

def new
  @about_amitian = current_amitian.build_about_amitian
end

def create
  @about_amitian = current_amitian.create_about_amitian!(about_amitian_params)
  if @about_amitian.save
    redirect_to :back
    flash[:notice] = 'success'
  else
    render root_url
  end    
end

private

def about_amitian_params
  params.require(:about_amitian).permit(:dob,:interest,:bio,:catch_phrase,:relationship_status)
end 

在我的服务器日志中我有这个查询

Update 'about_amitians' set 'amitian_id' = NULL where 'about_amitian'.'id'  = 1

这里是通过表单发送的参数

Parameters: {"utf8"=>"✓", "authenticity_token"=>"6MtQlOfl4kU1BPMDT81m8rwwxSYdaQKpUEZbvnFw9ux1nVELSTSmaRNOgUCKNyTe2VrrkY01Ewn70hGWn/9wQg==", "about_amitian"=>{"dob"=>"m", "interest"=>"vm", "bio"=>"blyhjb", "catch_phrase"=>"hjkl", "relationship_status"=>"bljhbl"}, "commit"=>"Create About amitian"}

【问题讨论】:

  • current_amitian 已设置?!?
  • ya.. 使用设计
  • 我可以知道你添加的参数吗?
  • 我不明白......你的意思是我的关于表中的属性?
  • 当你提交表单时那个时候表单会发送我想知道的参数。

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-3.2


【解决方案1】:

我终于解决了,但这太疯狂了...... 代码中的一切都很好..问题与我假设的完全不同。 每当我提交表单时,一切都很好,并且我的 amitian_id 设置正确。但是每当我重定向到我的新页面时......我的 amitian_id 更新为 NULL。 正如您从代码中看到的那样.. 我 redirect_to :back (即回到新的)所以我的 amitian_id 更新为 null。

【讨论】:

  • 我不知道会发生什么。你得到更新只是为了渲染new 模板?从您提供的代码中,我认为应该在AboutAmitian 类中设置foreign_key 选项而不是Amitian,但如果您说这不是问题,我就没有更多的猜测了。
  • 我尝试了很多方法.. 每次我再次重定向到新的.. 我得到一个 null 的更新...如果我在提交后重定向到 root_path .. 我的 amitian_id 在我的表是正确的.. 但是如果我再次转到我的 about/new .. 它将更新为 null/... 这对我来说是个大问题吗? ://
  • 我认为这是一个大问题,因为这绝对是不是通常的行为。也许您的 new 模板触发了这一点有所不同。
  • 我知道,我问了一个关于这个的新问题。我正在阅读一些文档,但没有任何效果:/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-12
  • 2021-09-29
  • 1970-01-01
  • 2023-01-05
  • 2023-01-18
  • 2014-06-07
  • 1970-01-01
相关资源
最近更新 更多