なぜ私はこのようなことをすることができないのですか?
class CreateModels < ActiveRecord::Migration
def self.up
create_table :fruit do |t|
t.array :apples
end
end
end
配列(「リンゴ」)をFruitクラスのインスタンスの属性にする他の方法はありますか?
なぜ私はこのようなことをすることができないのですか?
class CreateModels < ActiveRecord::Migration
def self.up
create_table :fruit do |t|
t.array :apples
end
end
end
配列(「リンゴ」)をFruitクラスのインスタンスの属性にする他の方法はありますか?
Rails 4 で PostgreSQL を使用すると、実際に DB で配列型を使用できます。
移行:
class CreateSomething < ActiveRecord::Migration
def change
create_table :something do |t|
t.string :some_array, array: true, default: []
t.timestamps
end
end
end
関連付けに関する Rails ガイドを確認してください(has_many に特に注意してください)。
データベースでサポートされている任意の列タイプを使用できます (t.column
の代わりに使用しますt.type
)。ただし、DB 間の移植性が懸念される場合は、activerecord で明示的にサポートされているタイプに固執することをお勧めします。
果物にりんごがたくさんあるのはちょっとおかしなことですが、これは単なる例でしょうか? (リンゴは果物のサブクラスになると思います)。
serializeを使用できます。ただし、Apple を AR オブジェクトにする場合は、associationsを使用してください。