私のモデルでは、私のモデルでは、バックグラウンドで渡しているオブジェクトを作成しているのにデータベースに保存していないときに、Postgres配列タイプのフィールドが1つあります。ですから、Active Adminを使って配列フィールドをデータベースに保存する必要があります。Active Admin Rails 4にアレイを保存する方法は?
おかげ
私のモデルでは、私のモデルでは、バックグラウンドで渡しているオブジェクトを作成しているのにデータベースに保存していないときに、Postgres配列タイプのフィールドが1つあります。ですから、Active Adminを使って配列フィールドをデータベースに保存する必要があります。Active Admin Rails 4にアレイを保存する方法は?
おかげ
あなたは、アクティブな管理は、箱から出して、それをサポートしていないので、ハックのものを持っている、それはそうです。
この答えは古いですが、それは動作します:ここでHow do you handle serialized edit fields in an Active Admin resource?
は、私はこの状況を取り扱う方法をまとめたものです。モデルにアクセサを追加しました。これは、配列を改行で結合された文字列に変換して配列に戻すことができます。
# app/models/domain.rb
class Domain < ActiveRecord::Base
serialize :names, Array
attr_accessor :names_raw
def names_raw
self.names.join("\n") unless self.names.nil?
end
def names_raw=(values)
self.names = []
self.names=values.split("\n")
end
end
代わりに使用するのでは、その後、ドメインのための私の管理リソースで、:names_rawフィールド:名前のフィールドを、私が使用していました。この値を設定すると、Arrayという名前が新しい値で保存されます。
# app/admin/domains.rb
form do |f|
f.inputs "Domain" do
f.input :names_raw, :as => :text
end
f.buttons
end
ここでは似ていますが、あなたは管理者のための派手なUIを必要としない場合はソリューションにとっても簡単です。
# app/model/thing.rb
def some_array_column= items
if items.is_a? String
super items.split(" ")
else
super items
end
end
そして
# app/admin/thing.rb
ActiveAdmin.register Thing do
index do
column "Things" { |t| (t.some_array_column || []).join(" ") }
end
end
アレイタイプ?どのデータベースサーバーを使用していますか? – phoet
はい、Postgresサーバー9.1 –
すみません、私の質問を正しく読んでいますか?私はアクティブな管理者によって保存しようとしています。 –