1

配列[lng、lat]であるフィールド「場所」があります。

次のように定義された ActiveAdmin フォームに 2 つの入力フィールドがあります。

f.inputs :name => "Location" do
  f.input :latitude
  f.input :longitude
end

緯度と経度を取得するために、モデルに 2 つのゲッターを定義しました。

def latitude
  location[1]
end

def longitude
  location[0]
end

フォームは期待どおりに表示されます。

これらの値を保存するために、モデルに 2 つのセッターを作成しました

def latitude=(lat)
  self[:location][1] = lat.to_f
end

def longitude=(lon)
  self[:location][0] = lon.to_f
end

フォームの送信後、これらのメソッドが呼び出されますが、値は保持されません。

私は何かが恋しいですか?

4

1 に答える 1

0

私は解決策を見つけました。set() を使用すると、機能しました。save および update_attribute - しませんでした。

def latitude=(lat)
  self[:location][1] = lat.to_f
  self.set :location, self[:location]
end

def longitude=(lon)
  self[:location][0] = lon.to_f
  self.set :location, self[:location]
end
于 2012-08-11T20:44:56.477 に答える