0
class House < ActiveRecord::Base
{
    attr_acccessible :title, :address
}

house.title の値には、5、5A、8、8/1、16 などがあります。つまり、主に並べ替え順序を決定する整数のプレフィックスがあります。それらが同じ場合は、サフィックス ("A" または " /1" など) など。タイトルを文字列として並べ替えると、並べ替え順序が正しくありません ("16" < "8/1")。

この特定のフィールドの比較演算子をオーバーライドできますか? 2 つの異なるフィールドとして保存する必要がありますが、接尾辞がある場合はそれを使用して完全なタイトルを表示する必要がありますか? サフィックスは長さを変更する可能性があるため、接頭辞に 0 を付けても問題は正しく解決されません。

それを行う正しい方法についてのフィードバックに感謝します。

4

1 に答える 1

0

次のようにメソッドを宣言できます。

class House < ActiveRecord::Base
{
  attr_acccessible :title, :address 

def is_number?
  true if Float(self) rescue false
end

}

次を使用して確認できます。

is_number?(mystring)

それは単なるアイデアであり、私はそれをテストしていません。

于 2013-01-31T14:35:40.013 に答える