次のように、可変数の引数を取るアクションメソッドがあります。
action!(:message => message, :photo => photo, :status => status)
引数が含まれている場合、それは(特定の基準に基づいて)有効である必要があるため、次のようなものは機能しません。
action!(:message => nil, :photo => nil, :status => nil)
これを念頭に置いて、引数が有効な場合にのみ引数を含めることができるようにしたいと思います。素朴に私は私がこのようにそれを行うことができることを知っています:
if message.valid? && photo.valid? && status.valid?
action!(:message => message, :photo => photo, :status => status)
elsif message.valid? && photo.valid?
action!(:message => message, :photo => photo)
...
end
これは機能しますが、本当に醜く非効率的です。この呼び出しに適切な引数のセットを作成するためのより良い方法はありますか?