Verwenden von Rails Form-Helfern mit serialisierten benutzerdefinierten Klassen
Ich versuche, einen Hash von Optionen in einem einzelnen DB-Feld zu speichern. Das Formular kann die Daten in der Datenbank speichern, sie jedoch nicht erneut abrufen, wenn ich sie bearbeite (z. B. sind alle anderen Felder mit Ausnahme der Felder wp_options bereits ausgefüllt).
class Profile < ActiveRecord::Base
serialize :wp_options
end
Dies ist meine benutzerdefinierte Klasse:
class WP_Options
attr_accessor :wp_name, :wp_desc, :wp_limit
end
In meinem Formular:
<%= form_for(@profile, :remote => true) do |f| %>
...
<%= f.fields_for :wp_options do |wp_options| %>
<%= wp_options.text_field :wp_name %>
<% end %>
...
In meinem Controller:
@profile = Profile.new(:wp_options => WP_Options.new)
In meiner DB-Spalte 'wp_options':
--- !map:ActiveSupport::HashWithIndifferentAccess
wp_name: Test
Jeder Rat wäre sehr dankbar.