ActiveRecordを使用してデータベースに配列を保存する 質問する

ActiveRecordを使用してデータベースに配列を保存する 質問する

私はRails 2.3.8を使っていて、DBアダプタとしてMySQLを使っています。データベースに配列を保存したいのですが、検索したらとても便利なものが見つかりました。記事

入力にはサーバー コンソールだけでなく GUI を使用する必要があります。論理的には int 配列を持つ nums というテキスト フィールドがあるとします。文字列から配列を簡単に取得して保存するには、nums の形式をどのようにすればよいでしょうか。

ベストアンサー1

を使用する場合serialize、実際には YAML であるにもかかわらず、テキスト フィールド内にデータがどのように保存されるかについて心配する必要はありません。

serialize文書化されているRails/ActiveRecord API について(「配列、ハッシュ、その他のマップ不可能なオブジェクトをテキスト列に保存する」という見出しのセクションまでスクロールしてください)

表示するには、ユーザーが理解でき、コード内で簡単に配列に変換できる形式が必要です。カンマ区切りかスペース区切りか?

出力のフォーマット:

delim = ',' # or ' ' for spaces, or whatever you choose
array.join(delim)

配列に戻すと、次のように動作します。

num_array = nums.split(delim).map(&:to_i) # or to_f if not integers

あるいはString#scanを使用するのでしょうか?

num_array = nums.scan(/\d+/).map(&:to_i) # for positive integers

おすすめ記事