小编use*_*042的帖子

Rails找到属性为零的记录

我正在尝试使用一种where方法进行记录搜索,其中有两个条件,其中一个条件必须为零.

我正在使用Rails 4,Ruby 2.0.0和Postgres.

我有一个有三个模型的应用程序:User,Drm和DrmMorning.用户有很多Drms,Drms有很多DrmMornings.我试图隔离一个DrmMorning记录,以便我可以编辑它.

这是我的drm_mornings控制器中的更新操作:

def update
  @user = current_user
  @drm = Drm.where(user_id: @user.id).last
  @drm_mornings = DrmMorning.where(" drm_id = ? AND location = ?", @drm.id, nil).first || DrmMorning.where(" drm_id = ? AND happy = ?", @drm.id, nil).first 
  if @drm_mornings.nil? 
    flash[:error] = "thanks for finishing up"
    render 'drm/intro'
  elsif @drm_mornings.update_attributes(morning_params)
    redirect_to 'ep_feelings'
  else
    flash[:error] = "something is broken"
    render 'drm/intro'
  end
end
Run Code Online (Sandbox Code Playgroud)

如何对满足两个条件的最新单个记录执行数据库搜索,其中一个条件是其中一个属性的空值?

目的是为当前用户的最新Drm获取第一个不完整的DrmMorning记录.这些记录在创建后分两个阶段进行编辑,因此 - 如果是nil,则为nil分配的结构.

每当我调用该方法时,它就像是@drm_morning空的,发送到drm/intro闪光灯说谢谢你完成.

但是,该记录不应该是空的.在我打电话的控制台中,DrmMorning.last我得到这个输出: …

postgresql ruby-on-rails ruby-on-rails-4

2
推荐指数
1
解决办法
2310
查看次数