この単純なケースでは、いくつかのロジックをビューに配置するだけで十分ですが、通常はヘルパー メソッドを追加することをお勧めします ( Getting Startedガイドを読むことをお勧めします)。
おそらくすでに app/helpers ディレクトリを見たことがあるでしょう。これらのヘルパー ファイルでは、ビュー レイヤーで使用できるメソッド、ビュー レイヤーに関連するメソッドを定義できますが、テンプレート ファイルに入れるには奇妙で汚いことを行います。
たとえば、あなたの場合、次のものを持つことができます/app/helpers/time_helper.rb
:
module TimeHelper
# I know the method name sucks a little
def show_hello_if_minutes_is_23(minutes = @minutes)
if minutes==23
"Hello"
else
"Anonymous"
end
end
end
次に、index.html.erb
テンプレートで使用します。
<%= show_hello_if_minutes_is_23 %>
ご覧のように:
- メソッド名を読んで、それが何をするかを理解できます(高レベルで)
- rubyメソッドにロジックを入れる
- メソッドは
minutes
引数を取りますが、オプションです
そして、覚えておいてください: 通常、繰り返しは悪 (DRY のこと) ですが、ビューランドでは 1 回が多すぎることがあります(ただし、この単純なケースではありません)。
更新:@minutes
変数を 23 に設定し、それを上書きして以前の割り当てを役に立たなくするのを見たところです。コントローラーで何をしようとしているのかわかりませんが、質問が分変数のデフォルト値を持つことに関するものである場合は、Yuri の回答と一緒に使用し、||=
operator:を使用します@minutes ||= params[:minutes]
。