0
当我的用户创建一个对象应该有他的id
时,id
出来nil
。想法为什么?新对象belongs_to不会与创建它的Devise用户关联
# 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
)。 不会引发异常。保存时没有回调。
需要更多信息。是否有抛出的异常或者只是没有保存?如果后者,也许单位不具有'user_id'?单位保存有回调吗? '@ unit'是否成功保存?显示代码后是否保存''@ unit'? – numbers1311407
您是否尝试过'current_user.build_unit'或'current_user.create_unit'?这是你的#new行为的整体吗?你的#create动作是什么样的?如果你在标准的Rails中执行这两步(#new(POST) - > #create),那么你需要在#create动作中将Unit和current_user关联起来。 – andrewle
@andrewle:正如“[...]”所示,这不是'#new'的全部。然而,你让我意识到'@ unit.user'分配应该放在'Unit#create'方法中,它解决了这个问题。你能否做出回答,让出现同样问题的人看到答案? –