Ruby on Rails は初めてで、快適な GUI IDE 支援関数型言語から RoR に移行する際に、初めての本当の困難に直面しました。
モデルには、一般的なデータと型固有のデータが必要です。これらのタイプは、数に制限がなく、ユーザーが定義できる必要があります。
たとえば、機器 (キット) の一部は、車両、ガス検知器、またはその他のタイプである可能性があります。車両の場合、タイプ固有のデータには、登録番号、登録更新日、シリンダーの数などが含まれる場合があります。ガス検知器の場合は、検知したガスの種類、シリンダー内のガスの量などです。
以下のように、そのタイプのキットについて記録できる特定のキット データの各タイプのラベルを記録するモデル「KitTypes」があります。
class KitType < ActiveRecord::Base
attr_accessible :name,
:info_label_1, :info_label_2, :info_label_3,
:date_label_1, :date_label_2, :date_label_3,
:num_label_1, :num_label_2, :num_label_3
has_many :kits
end
機器 (キット) 情報は、以下のようなキット モデルに格納されます。タイプ固有のフィールド名は、info_n、date_n、num_n フィールドです。
class Kit < ActiveRecord::Base
attr_accessible :kit_type_id, :location_id, :code, :brand, :model, :serial,
:purchased, :purchase_price, :warranty_expiry, :decommission_date, :notes,
:info_1, :info_2, :info_3,
:date_1, :date_2, :date_3,
:num_1, :num_2, :num_3
belongs_to :kit_type
belongs_to :location
end
一致する KitType レコードには、一致する番号付きキット データと一緒に表示される表示ラベルが含まれます。
以前は、一般的な情報を 1 つのビューに表示し、タイプ固有の情報を別のビューに表示していました。つまり、ユーザーはすべての機器を 1 つのグリッドで表示する必要がありますが、タイプ固有のデータは、同じタイプのレコードまたは個々のレコードを表示する場合にのみ意味があります。また、通常は KitType ラベル データを持つ Kit フィールドのみが表示されますが、この段階ではそれは重要ではありません。
型固有のデータを別のモデルに分離することはできますが、それによって得られるものはあまりなく、適応可能なラベルの問題はまだ解決されていません。
Rails で同様のことを行うにはどうすればよいでしょうか (まだ専門家でなくても)、それともアプローチが間違っているのでしょうか?