1
我需要從哈希表中生成一個表單並將其返回到其發佈的參數中。爲此,我創建了這個類。在Rails 3中生成哈希表格
class Hashit
include ActiveModel::Conversion
extend ActiveModel::Naming
def initialize(hash)
hash.each do |k, v|
self.class.send(:attr_accessor, k.to_sym)
if v.class.name == "ActiveSupport::HashWithIndifferentAccess"
self.send("#{k}=", Hashit.new(v))
else
self.send("#{k}=", v)
end
end
end
def persisted?
true
end
end
現在例如我有一個settings
散列。 {:live=>{:title=>"Live Title"}, :staging=>{:title=>'Staging Title'}}
將其轉換爲@settings_obj = Hashit.new(settings)
的對象,然後使用simple_form爲其生成表單。
<%= simple_form_for @settings_obj, :url => app_settings_url do |f| %>
<%= f.fields_for :live do |l| %>
<%= l.input :title %>
<% end %>
<%= f.fields_for :staging do |s| %>
<%= s.input :title %>
<% end %>
<%= f.submit %>
<% end %>
使用適當的字段名稱正確生成表格,但只有問題是字段中沒有值。
如何解決這個問題?