我遇到了允许用户更改其中一个属性的问题。我希望我的主页提示用户设置此属性,如果他们没有设置它。
我已经编写了此方法来检查是否存在此属性:
Container
View
在我看来,我写过:
def start_date_set?
current_user.start_date?
end
我认为如果没有设置start_date,则应该触发elsif,这不应该是创建新帐户的时间。但是,它不会触发,而是显示最终的其他条件。
有谁知道为什么应该呈现的视图不是?
已编辑添加
这是将start_date附加到用户的迁移:
<% if is_admin? %>
#render admin
<% elsif !start_date_set? %>
#this is what i want to see
<%else %>
#render users posts
<% end %>
<%#=if not logged in %>
<% else %>
#signup page is rendered
#this is what shows up
<% end %>
答案 0 :(得分:0)
事实证明,我的方法只有在帐户被激活后才会起作用,我不知道为什么,但这就是它的效果。一旦我使用激活的帐户尝试上述代码,它就可以正常工作。
答案 1 :(得分:0)
你需要在另一个if语句的底部包含你的else语句来检查你是否登录。为此,您可以检查current_user
对象的presenece。使用此if语句,您的视图如下所示:
<%#= if logged in %>
<% if current_user %>
<% if is_admin? %>
# render admin
<% elsif !start_date_set? %>
# this shows up if you are logged in and start_date_set? returns false
<% else %>
# render users posts
<% end %>
<%#= if not logged in %>
<% else %>
# signup page is rendered when not logged in
<% end %>