我有一個下拉菜單,其中包含用戶簡介頁面的鏈接(UserProfile
)。 user.user_profile
默認情況下不會創建,因此只有在關聯的用戶配置文件存在的情況下鏈接纔會顯示。有條件的erb不按預期方式工作
我目前有:
<% if profile_present? %>
<%= link_to "My profile", user_profile_path(current_user.user_profile) %>
<% end %>
我的helper方法:
module ApplicationHelper
def profile_present?
current_user.user_profile.present? if user_signed_in?
end
end
我們的目標是,如果條件得到滿足,只有執行的代碼。
有什麼建議嗎?
當用戶配置文件不存在時,這會導致我一個ActionController::UrlGenerationError
。
No route matches {:action=>"show", :controller=>"user_profiles", :id=>nil} missing required keys: [:id]
應用程序跟蹤:
app/views/layouts/_navbar.html.erb:44:in `_app_views_layouts__navbar_html_erb___2344119771953232299_47030678815860'
app/views/layouts/application.html.erb:27:in `_app_views_layouts_application_html_erb___1177681419623347300_69843401266740'
` UPDATE:
耙路線:
user_profiles GET /user_profiles(.:format) user_profiles#index
POST /user_profiles(.:format) user_profiles#create
new_user_profile GET /user_profiles/new(.:format) user_profiles#new
edit_user_profile GET /user_profiles/:id/edit(.:format) user_profiles#edit
user_profile GET /user_profiles/:id(.:format) user_profiles#show
PATCH /user_profiles/:id(.:format) user_profiles#update
PUT /user_profiles/:id(.:format) user_profiles#update
DELETE /user_profiles/:id(.:format) user_profiles#destroy
這可能是簡單的東西,但除非你發佈'profile_present?'方法,否則很難說。 – MarsAtomic
該錯誤可能是在您的'profile_present?'狀態。你能提供關於錯誤的更多信息嗎? – Phil
你可以分享'profile_present'的代碼以及獲取當前用戶嗎?賠率是,它將'nil'傳遞給'user_profile_path'並引發錯誤。 – nicholas79171