ユーザーが更新できる単一のジオメトリ列 (ポイント) を持つ非常に単純なテーブルがあるとします。
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)')
POINT(X,Y) はレールとして文字列として認識されるためです。rails が POINT(#{params[:x]},#{params[:y]}) を引用符で囲まれていないコマンドとして受け入れるようにするにはどうすればよいですか?
はい、簡単に実行できますがINSERT
、gem をインストールする以外に、これをレールで動作させる方法があるかどうか疑問に思っています。