0

私は現在、WebとiOSの両方のフロントエンドに関連付けられているRailsバックエンドに取り組んでいます。iOS側では、現在、緯度と経度を渡してから、サーバー上の最も近いオブジェクトまでの距離を計算しています。

私の問題は、iOS用のjsonをレンダリングする前にコントローラーで、各オブジェクトをループして追加する必要があることobject[:distance] = distance_calculation if params[:latitude] && params[:longitude]です。

そのような任意のプロパティを追加すると、減価償却の警告が表示されます。もっと良いことがあると思います。オブジェクトにを追加することを考えattr_accessor :distanceましたが、モデルにパラメーターへのアクセス権がないため、モデルのパラメーターに基づいてこれを設定することはできません。jsonレンダリングの前にループを実行する必要があります。

任意の提案をいただければ幸いです!ありがとう!

4

1 に答える 1

0

モデルに距離を設定しようとしている理由がわかりません...iOSクライアントがlatとlongで定義された場所を送信していますが、正確に何をしようとしているのでしょうか。

あなたのオブジェクトはすでに地理的に配置されていますよね?それ以外の場合、最も近いものをどのように決定しますか?

しかしとにかく、モデルの距離の設定に関する質問に答えるにはattr_accessor、次のようにを使用します。

class Model < ActiveRecord::Base
    attr_accessor :distance
end

そしてあなたのコントローラーで

 object.distance = distance_calculation if params[:latitude] && params[:longitude]

ジオロケーションされたモデルがあり、距離などを計算しようとしている場合は、Geocoderのようなgemを使用することをお勧めします。

于 2012-08-18T20:01:21.950 に答える