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'方法中,它解決了這個問題。你能否做出回答,讓出現同樣問題的人看到答案? –