2015-07-02 43 views
0

我有兩個模型,UserProfile,使用user_id作爲外鍵來鏈接它們。我想在我的頁腳中添加一條條件語句,查看當前用戶是否有配置文件。如果他們這樣做,他們將看到一個編輯頁面的鏈接,如果他們不這樣做,則會到創建/新建頁面。Ruby on Rails:使用presence_in的條件鏈接

我試着在網上找到一個解決方案,我認爲使用presence_in?(對象)方法可能會起作用,但作爲一個新手,我不太明白這個語法。

這是我到目前爲止,如果有人可以幫助我得到了終點線:)

  <% if current_user.id (something something) %> 
      <li><%= link_to "Edit Profile", edit_profile_path(:id => current_user) %></li> 
      <% else %> 
      <li><%= link_to "New Profile", new_profile_path %></li> 
      <% end %> 

如果我的問題不清楚,請讓我知道,我會提供一個鏈接到我的網頁Github上

回答

1

您可以簡單地執行<% if current_user.profile.present? %>來檢查用戶的配置文件是否存在。你需要在用戶模型中有has_one關聯,例如has_one:profile

+0

'has_one:profile,dependent::destroy'在我的User模型中,但我仍然收到'未定義的方法'profile'for nil:NilClass' :( – Ryan

+0

必須添加'if user_signed_in?&&'才能使用它。感謝您的幫助朋友。 – Ryan

+0

這意味着'current_user'爲零,並且您嘗試對該nil對象調用'profile',請檢查' current_user'對象設置正確,可以先在控制檯中進行測試 >> current_user = User.first >> current_user.profile.present? –