Rails 3.2.8 と mySql をデータベースとして使用しています。Setup と Regions の 2 つのモデルがあります。N リージョンしか持てません (N は現在 6 です)。多くのセットアップがあり、各セットアップが 1 つのリージョンにある必要があります。
最も明白な方法は Setup has_one Region のようです。ただし、これにより、すべての新しいセットアップに新しいリージョン オブジェクトが与えられます。ただし、セットアップで領域オブジェクトを再利用したい (そのパラメーターが変更されると、すべてのセットアップで全面的に変更されるようにするため)、セットアップごとに新しいリージョンを作成する必要はありません。私は最善の方法は次のように考えています
class Setup < ActiveRecord::Base
attr_accessible :name, :region_id
end
class Region < ActiveRecord::Base
attr_accessible :name
end
コントローラーのセットアップに関連付けられたリージョンが必要な場合は、
setup = Setup.find(id)
region = Region.find(setup.region_id)
これがその方法なのか、それとも ActiveRecord を使用して Rails でこれをキャプチャする他の方法があるのか 、それとも次のようなことができるようにその周りにきちんとした抽象化があるのか を声に出して思っていますか?
region = setup.region