4

次のような HAML ドキュメントに挿入された Ruby コードが少しあります。

:javascript
    a = { 'something' : "#{model.attribute.present? ? method(parameter) : ''}" }

ただし、メソッド(パラメータ)が一部のパラメータで例外をスローしているため、例外をレスキューしたいと考えています。例外がスローされたら、「何か」キーを別のものにマップしたいと思います。

HAML コード/ルビ補間でこれを行う方法の正確な構文については明確ではありません。いくつか試してみましたが、うまくいきません。

ありがとう!

4

1 に答える 1

6

この行を取る必要があります

model.attribute.present? ? method(parameter) : ''

それからヘルパーメソッドを作成します

class ApplicationHelper
  def some_method
    model.attribute.present? ? method(parameter) : ''
  rescue
    "something else" # this is your value in case of exception
  end
end

その後、HAML は自明になります

:javascript
    a = { 'something' : "#{some_method}" }
于 2012-07-09T21:07:12.527 に答える