Ruby on rails Rails在字符串前加两次前缀
使用Rails 4.2。我有以下资料:Ruby on rails Rails在字符串前加两次前缀,ruby-on-rails,ruby,Ruby On Rails,Ruby,使用Rails 4.2。我有以下资料: field = ["can't be blank", "is invalid"] def error_message_for(field) if field.present? if field.size > 1 field.last.prepend("and/or ") end field.join(", ") end end error_message_for(field) 我希望输出为不能为空,和
field = ["can't be blank", "is invalid"]
def error_message_for(field)
if field.present?
if field.size > 1
field.last.prepend("and/or ")
end
field.join(", ")
end
end
error_message_for(field)
我希望输出为不能为空,和/或无效
,但它的不能为空,和/或无效
。您会看到和/或出现两次
怎么了 我觉得没问题。您确定您没有运行旧的缓存版本(尝试重新启动rails服务器),或者没有安装任何奇怪的monkey补丁吗
也就是说,我认为您试图在Rails中以一种更简单的方式实现的目标是可行的:看看
这可以简化为:
field.to_sentence(last_word_connector: ' and/or ')
我觉得没问题。您确定您没有运行旧的缓存版本(尝试重新启动rails服务器),或者没有安装任何奇怪的monkey补丁吗
也就是说,我认为您试图在Rails中以一种更简单的方式实现的目标是可行的:看看
这可以简化为:
field.to_sentence(last_word_connector: ' and/or ')
对字符串进行变异。也就是说,对它的调用不是幂等的。使用克隆版本的字段
数组:
def error_message_for(field)
field = field.map(&:dup) # HERE
if field.present?
if field.size > 1
field.last.prepend("and/or ")
end
field.join(", ")
end
end
对字符串进行变异。也就是说,对它的调用不是幂等的。使用克隆版本的字段
数组:
def error_message_for(field)
field = field.map(&:dup) # HERE
if field.present?
if field.size > 1
field.last.prepend("and/or ")
end
field.join(", ")
end
end
字段有什么问题。加入(“和/或”)
@mudasobwa:大概是这样,你可以有一个像“a,b和/或c”这样的句子。请参阅我关于使用to_句的回答field.join(“和/或”)
@mudasobwa:大概是这样,你可以有一个像“a,b和/或c”这样的句子。请参阅我关于使用to_句子的回答。这应该行得通,但我得到的不能为空,而且是无效的@Victor:你说得对。看起来,last\u words\u connector
用于3+元素数组,而two\u words\u connector
用于2个元素数组。它就在文档中,但我以前从未注意到!应该可以同时指定两个参数。TIL。这应该行得通,但我得到的不能为空,而且是无效的@Victor:你说得对。看起来,last\u words\u connector
用于3+元素数组,而two\u words\u connector
用于2个元素数组。它就在文档中,但我以前从未注意到!应该可以同时指定两个参数。