我不知道更好的方式来提出这个问题,这可能就是我为什么要努力寻找答案的原因。
我想使用AMA字母顺序按字母顺序排列歌曲标题列表,其中(in)definate文章将转换为最后放置描述逗号的文章。例如:
"The Way Forward" => "Way Forward, The"
"The Long and Winding Road" => "Long and Winding Road, The"
"A Late Night Alone" => "Late Night Alone, A"
如果必须的话,我可以写一个为我做这个的方法,但有一些有用的方法,比如Pluralize
和Titleize
以及Humanize
,我想知道是否有这种方法已经存在。
答案 0 :(得分:0)
确定。感谢您发表评论Maciej Nędza和Ash。所以似乎答案是否定的,没有预先建立的方法来重新排序字符串,以""," A"或" An"在Ruby on Rails'库。
因此,如果有人发现这篇文章寻找答案,我会发布我用来解决此问题的代码。
模型Song
包含歌曲标题的字符串title
,另一列sort_order
用于保存修改后的标题以按字母顺序排序。
# app/models/song.rb
class Song < ApplicationRecord
before_save :set_sort_order
....
private
def set_sort_order
unless title.starts_with?("The ", "A ", "An ")
self.sort_order = title
else
word = title.partition(" ").first
self.sort_order = title["#{word} ".size..-1].concat(", #{word}")
end
end
end