验证失败:停车必须存在,用户必须存在

时间:2020-07-30 19:27:38

标签: ruby-on-rails ruby activerecord

我正在一个项目中,用户可以看到狗公园,并为每个公园设置单独的游戏日期。我遇到的问题是PlaydatesController创建操作无法持久保存每个新播放日期与之关联的user_id和park_id。我尝试将 optional:true 添加到我的Playdate模型中,该模型确实保存了每个播放日期。但是,这样做会使user_id和park_id的 null 列条目。

我需要的是user_id和park_id来创建一个播放日期并保持播放日期和公园之间的关联...我搞砸了关联吗?非常感谢您的帮助。

这是我的代码:

播放日期模型:

audio.play()

停车模式:

class Playdate < ApplicationRecord
  belongs_to :park
  belongs_to :user

  validates :date, presence: true 
  validates :time, presence: true
end

用户型号:

class Park < ApplicationRecord
  has_many :playdates
  has_many :comments
  has_many :users, through: :comments 
end

播放日期控制器:

class User < ApplicationRecord
  has_many :parks
  has_many :playdates 
  has_many :comments, through: :parks
end

播放日期新视图:

def create
    @playdate = Playdate.new(playdate_params)
    if @playdate.save!
        redirect_to park_path(@park)
    else
        render :new
    end
end

private

def playdate_params
    params.require(:playdate).permit(:time, :date, :user_id, :park_id)
end

1 个答案:

答案 0 :(得分:0)

您应该使用:

f.hidden_field :user_id, value: current_user.id
f.hidden_field :park_id, value: @park.id

“ hidden_​​field_tag”和“ hidden_​​field”之间呈现的HTML不同。自己尝试看看有什么区别。