後,我有一個非常簡單的用戶模型。當我第一次創建它時,它有三個字段email
,password_hash
和password_salt
。導軌 - 奇怪的行爲添加字段到模型
我最近添加一個字段到模型,以便允許用戶設置顯示名稱,該領域被稱爲display
。我使用了this answer中概述的方法。所以我輸入到終端應該是這樣的:
script/rails g migration add_display_to_users display:string
然後
rake db:migrate
這工作得很好,並修改我的註冊表格之後,我能夠將這些數據添加到數據庫中。
在我的應用程序佈局,然後我想在標題中顯示用戶的顯示名稱。因此,在我的應用程序控制器中,有一種方法是我在每個控制器中調用以獲取導航欄,稱爲nav_bar
。在此方法中,如果它們已登錄,我還設置一個@user
實例變量。
因爲在應用程序控制器中調用了nav_bar
方法,所以我可以從應用程序佈局訪問它。所以,我試圖表明他們在標題的電子郵件作爲測試,像這樣:
<% if @user %>
<div class="ac_button">
<%= @user.email %>
</div>
<% end %>
這工作得很好,並顯示他們的電子郵件的標題。但是,如果我將其更改爲
<%= @user.display %>
它不顯示任何內容。
最奇怪的一部分,如果我叫@user.email
,或者用戶在我的應用程序控制器或佈局的任何其他財產的地方。它的工作原理,並顯示他們的顯示名稱。我不知道爲什麼這會使它工作,但它確實如此。
例如,如果在應用控制器找到用戶後,我打電話@user.email
,它就會顯示在佈局精細的顯示名稱。
def nav_bar
if session[:user_id]
@user = User.find(session[:user_id])
@user.email
end
# create and return the navbar
end
或者如果在佈局中,我調用任何地方的用戶屬性,它也可以。
<div class="ac_button">
<% @user.password_hash %>
<%= @user.display %>
</div>
如果有人能解釋這種非常奇怪的行爲,我會驚訝!
非常感謝你! :) –