當您嘗試定製其行爲時,我在理解設計如何工作時遇到麻煩。設計僅適用於STI機型嗎?
我有兩個不同的模式來處理:學會和合作者,並在報名表必須在他們兩個同樣的觀點。
因此,我必須通過編寫處理兩種模型的新控制器來覆蓋「設計註冊控制器創建方法」。
這裏來的痛苦。
從這裏「Devise form within a different controller」和here,我知道我有定義這些新的幫手,使設計作品:
module ContentHelper
def resource_name
:user
end
def resource
@resource ||= User.new
end
def devise_mapping
@devise_mapping ||= Devise.mappings[:user]
end
end
而創造的方法,我想重寫是這樣的:
def create
build_resource
if resource.save
if resource.active_for_authentication?
set_flash_message :notice, :signed_up if is_navigational_format?
sign_in(resource_name, resource)
respond_with resource, :location => after_sign_up_path_for(resource)
else
set_flash_message :notice, :"signed_up_but_#{resource.inactive_message}" if is_navigational_format?
expire_session_data_after_sign_in!
respond_with resource, :location => after_inactive_sign_up_path_for(resource)
end
else
clean_up_passwords resource
respond_with resource
end
結束
我不知道如何使它的工作原理沒有妥協的監督功能。 (build_resource)。任何建議?我找不到任何解決方案沒有STI使用!