[英]How do I include a different file if my user is logged in?
我正在使用Rails 4.2.5。 我的“ app / views / layouts / application.html.erb”文件中有這一行…
<%= yield %>
如果用戶已登錄,我想顯示頁面“ ./app/views/user_objects/index.html.erb”中的內容,但如果不是,則想顯示頁面“ app / views / pages / _welcome.html.erb”。 我不知道該如何設置。 在我的config / routes.rb文件中
constraints lambda { |req| !req.session[:user_id].blank? } do
root :to => 'user_objects#index', as: "dashboard"
end
root to: 'pages#index'
但是即使用戶未登錄,該文件始終顯示“ ./app/views/user_objects/index.html.erb”文件。我需要添加(或刪除)哪些內容才能顯示正常的歡迎頁面內容(如果用戶未登錄)?
我會做一些不同的事情。 在我的config / routes.rb文件中 ,
root 'pages#index'
然后將app / controllers / pages_controller.rb的 索引方法更改為
def index
if logged_user?
render 'user_objects/index'
end
end
然后我會用所有這些邏輯來說明用戶是否登錄在logging_user中? 類似的方法
def logged_user?
!session[:user_id].blank?
end
當然,還有其他方法可以做到這一點。 但請始終牢記KISS原則 。
如果您真的想了解所有渲染過程,最好注意一下http://guides.rubyonrails.org/layouts_and_rendering.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.