0
我有這樣的方法可以將「本」在一個字符串的結尾,如果它是在字符串中Novel.class
開頭:排序!似乎忽略自定義屬性
def sort_name
display_name = self.name
if display_name.match(/^the/i)
arr = display_name.split(/^the/i)
display_name = "#{arr[1]}, The"
end
display_name
我NovelController
有這樣的指數方法:
def index
@novels = Novel.all
@novels.to_a.sort! { |a,b| a.sort_name.downcase <=> b.sort_name.downcase }
respond_to do |format|
format.html # index.html.erb
format.json { render :json => @novels }
end
end
在視圖中我只顯示sort_name
。正在顯示sort_name
,但小說仍按name
排序。有人看到缺陷嗎?謝謝。
出於某種原因,實際上將所有修改後的字符串放在默認值之前。例如,「黃神,這個」在「艾倫和...」之前有什麼想法? –
@JoeEssey:嗯,也許activerecord批處理是行爲不端。嘗試獲得完整的數組:'Novel.all.to_a.sort ...' –
這實際上是我得到的:'@novels = Novel.all.to_a.sort {| a,b | a.sort_name.downcase <=> b.sort_name.downcase}' –