比方說,我有一個非常簡單的表,只是有一個幾何列(點),用戶可以更新:的軌道參數使用SQL /價值
CREATE TABLE m_point (
id int(11) NOT NULL AUTO_INCREMENT,
point geometry NOT NULL,
deleted_at datetime DEFAULT NULL,
created_at datetime DEFAULT NULL,
updated_at datetime DEFAULT NULL,
PRIMARY KEY (id))
我怎樣才能插入此使用的軌道,因爲幾何列需要實際幾何?
我還以爲這會工作:
loc = MPoint.new
loc.point = "POINT(#{params[:x]},#{params[:y]})"
loc.save!
,但我得到的錯誤:
Mysql2::Error: Cannot get geometry object from data you send to the GEOMETRY field: INSERT INTO `m_point` (`point`) VALUES ('POINT(35, 10)')
爲(X,Y)被視爲軌道作爲一個字符串的位置。我如何得到它,以便rails接受POINT(#{params [:x]},#{params [:y]})作爲不帶引號的命令?
是的,做一個INSERT
會很簡單,但我想知道是否有其他方法,缺少安裝gem,以使其與rails一起工作。
我正在考慮只是做了初始插件後的更新,但失敗的嘗試做它在軌道的目的。此外,將不得不放置一個虛擬值作爲位置不爲空。 –
如果你需要NOT NULL,那麼就不能這樣做。如提到的zetetic將不得不尋找一個寶石。 –