0

「キャンセル済み」、「確認済み」など、すべて異なる意味を持つコードがいくつかあり、コードをデータベースに保存します。Rails アプリのさまざまな場所で word フォームを使用したいと考えており、可能な限り効率を維持するために人々がこれを推奨する方法を知りたいと考えていました。

私は自分の意見でケースステートメントを検討しましたが、それは繰り返されるので、自分の意見でも論理を避けたいと思っています。だから私はおそらくヘルパーだと思ったが、それはヘルパー内のケースステートメントであるべきですか?

これは、関連するヘルパー ファイルのこれまでの内容です。

def status_word(status)
  case status
  when 1
    puts "Cancelled"
  when 2
    puts "Confirmed"
  end
end

そして、私はそれを次のように呼んでいます。

<%= status_word(1) %>

しかし、私の見解では何も出力されません。ここで「プット」を使用できますか/使用する必要がありますか、それともより良い方法がありますか?

4

1 に答える 1

0

あなたの使い方putsが間違っています。メソッドから値を返すためではなく、標準出力に書き込むためのものです。あなたが欲しいreturn、または値がメソッドの最後から落ちるようにするだけです:

def status_word(status)
  case status
  when 1 then "Cancelled"
  when 2 then "Confirmed"
  end
end

各文字列の前にputs、実際には の戻り値を返しています。putsこれは 次のnilとおりです。

irb(main):001:0> puts "what"
what
=> nil
于 2013-09-11T18:20:25.130 に答える