user_signed_in?

时间:2013-02-01 22:28:32

标签: ruby-on-rails ruby

我是Ruby on Rails的新手。我对设计和rails / ruby​​方法只有一点熟悉。

我有一个登录页面。我有一个页面,检查用户是否已登录;如果是,则显示一个部分,否则显示另一部分;

<%= render(user_signed_in? ? '/layouts/signed_in_header' : '/layouts/signed_out_header') %>

现在,我怎么能拥有上述内容,只有一个html.erb例外?是否有类似Is_not方法的东西?

如果用户已登录并且他所在的页面是not_here_please,我不希望显示signed_in_header。如果用户已登录,它应显示在每个其他页面上。

是否有类似的东西:

<%= render(user_signed_in? ? and page_is_not 'not_here_please'
'/layouts/signed_in_header' : '/layouts/signed_out_header') %>

感谢您的帮助,

克里斯。

1 个答案:

答案 0 :(得分:1)

正如马克西莫夫所说:

<%= render((user_signed_in? && controller.action_name != 'not_here_please') ? '/layouts/signed_in_header' : '/layouts/signed_out_header') %>

在您的情况下,随意使用与controller.action_name不同的任何内容。我只是认为这是表达你要求的最合适的方式。