私は動的セットと既知のフィールドセットの両方を持つフォームを持っています。動的なフィールドをデータベースに格納する方法が必要です。データを検索する必要がないため、シリアル化されたフィールドに格納することを決めました。必要なときに格納して呼び出すだけで済みます。未知のフィールドを持つフォームを作成し、それらのフィールドをモデル内のシリアル化されたフィールドに格納する
class MyApplication < ActiveRecord::Base
has_one :applicant
belongs_to :member
serialize :additional_fields, Hash
accepts_nested_attributes_for :applicant, :additional_fields
私は、フォームがadditional_fields_attributesなどのフィールドを返し、何とかadditional_fieldsセクションにハッシュをstorying後にモデルの外観を持っていたと考えていました。私がこれまで見ていない方法のようなものを使用する限り、またはaccepts_nested_attributes_forを取り除き、それを自分で処理する必要があるかどうかはわかりません。
誰もが考えていますか?
ありがとうございます! Ryan
これらのハッシュキーをメソッドに変換する方法はありますか?たとえば、my_application.additional_fields.firstを使用します。 – lundie
これは次のように答える必要があります:http://stackoverflow.com/questions/4910326/rails-editing-serialized-data-in-form – apneadiving
フィールドがあることがわかっている場合はこれが機能します。私の場合、フォームは動的に生成され、各アプリケーションには異なるフィールドがあります。シリアライズされたハッシュに含まれているものから必要なメソッドを生成するために、メタプログラミングのようなものを使ってこれを処理する方法はありますか? – lundie