簡體   English   中英

如果我的用戶已登錄,如何包含其他文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM