我有一个带有可变数量参数的操作方法,如下所示:
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
虽然这确实很丑陋且效率低下。有没有更好的方法来为此调用构建正确的参数集?