単純なユーザーと住所のモデルを作成しようとしています。
ユーザーモデルにネストされたアドレスモデルを持つネストされたフォームを作成しました。私のユーザーモデルには、デバイス属性などがあります。
ユーザーの作成時に奇妙な動作が発生することを除いて、すべて正常に機能します。
以下を読むと、レコードが最初にコミットされたときに所有ユーザーのアドレスである「user_id」が入力されていることがわかります。しかし、その直後に、Deviseコアにあるように見えるものがuser_idをnullにリセットしています。
誰がこれを引き起こしているのか知っていますか?
2012-11-0322:45:20+1100に127.0.0.1のPOST"/users"を開始しました。Member::UsersController#createによるHTMLパラメーターとしての処理:{"utf8" => "✓"、 "authenticity_token" => "Pr8lSEJalWwosuaLPOrYqQ + sOkFCyoNujaUybxpZDAg ="、 "user" => {"address_attributes" => {"first_name" => "HOlley"、 "last_name" => "Hou"}、 "email"=>"HollyHou@hisense.com。 au "、" password "=>" [FILTERED] "、" password_confirmation "=>" [FILTERED] "}}新しいユーザーの作成(0.1ms)BEGIN(0.1ms)COMMIT(0.0ms)BEGIN Member :: User Exists (0.3ms)1を1つのFROMWHEREとして選択し
member_users
ますmember_users
。member_users
created_at
current_sign_in_at
current_sign_in_ip
encrypted_password
last_sign_in_at
last_sign_in_ip
remember_created_at
reset_password_sent_at
reset_password_token
sign_in_count
、updated_at
)VALUES( '2012-11-03 11:45:20'、NULL、NULL、'hollyhou@hisense.com.au'、'$ 2a $ 10 $ 1JvC / sO85L2esNp8xA9qseTc78.rtOyF3zSBi / fOTiWJRt9.zgYha'、NULL、NULL 、NULL 、 NULL 、NULL 、0 、' 2012-11-03 11:45:20 ' )SQL (0.2ms ) INSERT INTOmember_addresses
(、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、_ _ _ _ _address3
address_1
address_2
address_type
business_name
city
country
created_at
first_name
geo_late
geo_long
is_primary
last_name
middle_name
phone1
phone1_type
phone2
phone2_type
postcode
primary_email
secondary_email
state
status
suburb
title
updated_at
user_id
)VALUES(NULL、NULL、NULL、NULL、NULL、NULL、NULL、 '2012-11-03 11:45:20'、'HOlley'、NULL、NULL、NULL、'Hou'、NULL、NULL、NULL、 NULL、NULL、NULL、NULL、NULL、NULL、NULL、NULL、NULL、 '2012-11-03 11:45:20'、5)(1.3ms)COMMIT
(0.1ms)BEGIN(0.2ms)UPDATEmember_users
SETlast_sign_in_at
= '2012-11-03 11:45:20'、current_sign_in_at
= '2012-11-03 11:45:20'、last_sign_in_ip
= '127.0.0.1'、current_sign_in_ip
= '127.0.0.1'、sign_in_count
= 1、updated_at
= '2012-11- 0311:45:20'WHEREmember_users
。id
= 5(0.2ms)COMMIT(0.1ms)BEGIN
(0.2ms)UPDATEmember_addresses
SETuser_id
= NULL、updated_at
= '2012-11-0311:45:20'WHEREmember_addresses
。id
= 5(0.2ms)コミット
私は最終的に(これが機能するようになると)、顧客がログインした場所(この場合はチェックアウトまたはヘッダー)に応じて、登録後に2つの異なる場所にリダイレクトできる必要があるため、コントローラーはカスタムコントローラーです。
class Member::UsersController < Devise::RegistrationsController
def create
super
end
def new
super
end
def edit
Rails.logger.debug { "Editing the user" }
super
end
def show
Rails.logger.debug { "Showing the user controller" }
end
end
およびroutes.rbから
devise_for :users, :class_name => "Member::User", :controllers => {:registrations => 'member/users', :sessions => 'member/sessions'}