我有一个带有设计的rails应用程序。当用户登录时(user_signed_in?
),我可以访问它并检索它的信息(例如current_user.last_search
)。但我还想要一种方法来保存一些链接到会话的信息,例如用户进行的最后一次搜索。
现在,我有这样的代码:
<% if user_signed_in %>
<%= current_user.last_search %>
<% else %>
<%= get_last_seach # some method to get the last search when user is not signed in %>
它太冗长了。而且我需要在很多地方这样做,并且使用其他变量而不是last_search
.
我想做这样的事情:
<%= my_current_user.last_search %>
当用户登录时,Devise current_user 在哪里my_current_user
,否则它是一个用户链接到当前会话(通过 cookie),并提供可用信息。
my_current_user
会表现得像这样:
# user starts new session on the website
user_signed_in? # false
my_current_user # Object User
my_current_user.last_search # ''
#user searches "pancakes"
user_signed_in? # false
my_current_user # Object User
my_current_user.last_search # 'pankakes'
#user logs in
user_signed_in? # true
my_current_user # Object User
my_current_user.last_search # 'pankakes'
#user logs off
user_signed_in? # false
my_current_user # Object User
my_current_user.last_search # 'pankakes' or '', I don't really mind here
这是一个好方法吗?你有什么建议?如果这是一个好主意,如何实施?