0

私はRuby on Railsにかなり慣れていません。私は、devise と rails/ruby メソッドに少しだけ精通しています。

サインインページがあります。ユーザーがサインインしているかどうかを確認するページがあります。ある場合は 1 つのパーシャルが表示され、そうでない場合は別のパーシャルが表示されます。

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

さて、html.erbの例外を1つだけ除いて、どうすれば上記を実現できますか? 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') %>

助けてくれてありがとう、

クリス。

4

1 に答える 1

1

maksimovが言ったように:

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

自分の状態とは違うものを自由に使ってcontroller.action_nameください。私はそれがあなたが求めていたものを表現するための最も適切な方法であると思いました。

于 2013-02-01T22:49:11.937 に答える