新对象belongs_to不会与创建它的Devise用户关联

时间:2011-08-27 05:44:04

标签: ruby-on-rails ruby-on-rails-3 devise

当我的用户创建了一个应该包含id的对象时,id会出现nil。想法为什么?

# controllers/units_controller.rb

class UnitsController < ApplicationController
  before_filter :authenticate_user!

  def new
    @unit = Unit.new
    @unit.user = current_user  # also tried .user_id = current_user.id
[...]


# models/unit.rb

class Unit < ActiveRecord::Base
  belongs_to :user
  # :user has_many :units too
[...]

对象已成功保存,但有一个空的user_id字段(显示nil)。 没有异常被抛出。保存时没有回调。

1 个答案:

答案 0 :(得分:0)

如果您在标准Rails两步(#new(POST) - &gt; #create)中执行此操作,则需要在#create操作中将Unit与current_user关联。

def create
  @unit = Unit.new
  @unit.user = current_user
  # ...
end