爲什麼這不是保存值?模型回調是通過一個錯誤(after_create)
每次創建新用戶時,都應該設置默認設置並在設置模型中創建一個條目。 如果我手動創建,用戶/設置關聯可以很好地工作。通過PSQL或軌道ç
class User < ActiveRecord::Base
after_create do
if self.setting.nil? # check if user got settings most likely not
# call settings model and create new default settings
Setting.create(:user_id => self.id, :foo => "bar", :baz => true)
end
end
end
是名稱是否正確,以及例如如果我創建了一個用戶設置和我想查詢的用戶設置我必須使用:
current_user.setting.language
這是愚蠢的,因爲它應該是複數,但它的作品,所以不要擔心任何命名約定或在我的回調簡單的拼寫錯誤。
事實上,它實際上不是一個錯誤,但值不會被保存。 這裏的過程是:
用戶創建一個新帳戶,這個回調應該建立在設置頁面上默認設置也需要像設置ID,這樣一個div:
<h2 data-settings_id="<%= current_user.setting.id %>" id="current_user" data-user="<%= current_user.id %>">Settings </h2>
如果我手動創建的設置此頁正常工作 - 所以我想,既然我得到這個錯誤的回調也沒有創造任何設置:
undefined method `id' for nil:NilClass
注: 我使用的設計,我不希望覆蓋任何類。 如何解決這個問題?感謝
'所以我想..'也許你可以只檢查呢? – IS04 2014-08-31 12:29:28
檢查什麼?我沒有創建任何值... – 2014-08-31 12:31:31