我有一个结帐表单,允许用户指定帐单邮寄地址和送货地址。我需要的行为是
1)如果提供了帐单邮寄地址但没有送货地址,则送货地址为帐单邮寄地址
2)如果提供了送货地址,则送货地址应作为送货地址
传递shipping: {
first_name: params[:first_name] unless params[:shipping_first_name] != nil,
last_name: params[:last_name] unless params[:shipping_last_name] != nil
}
这显然不起作用,我不确定如何设置
syntax error, unexpected ',', expecting keyword_end
答案 0 :(得分:1)
下面应该这样做:
shipping: {
first_name: params[:shipping_first_name].presence || params[:first_name].presence,
last_name: params[:shipping_last_name].presence || params[:last_name].presence
}
如果值不是Object#presence
, present?
方法将返回值nil
。 ||
表达式中不是nil
/ blank
的两个值中的第一个将是表达式的值。