私の Rails アプリケーションには、tweets_controller と coordinate_controller という 2 つのコントローラーがあります。最終的なビューでは、つぶやき_controller の属性を、coordinates_controller の条件を使用して表示したいと考えています。私が直面している問題は、つぶやき_コントローラーが座標コントローラーの変数を知っている必要があることです。座標コントローラーの私のコード
def CoordinatesHelper.query()
a = Coordinates.where(city: params[:show])
b = a.first
if a.count == 1
latitude = b.latitude
longitude= b.longitude
end
if(latitude=0 && longitude=0)
sql="Select * from tweets where tweet_text LIKE '%text%' AND user_loc LIKE 'show' order by id desc LIMIT 30"
else if (latitude!=0 && longitude!=0)
min_lat = latitude - 1.0
max_lat = latitude + 1.0
min_lng = longitude - 1.0
max_lng = longitude + 1.0
sql = "Select * from tweets where tweet_text LIKE '%text%' AND ( ((longitude BETWEEN min_lng and max_lng) AND (latitude BETWEEN min_lat and max_lat)) OR (user_loc LIKE 'show') ) order by id desc LIMIT 30"
else
sql="Select * from tweets where tweet_text LIKE '%text%' LIMIT 30"
end
end
end
私の tweets_controller は、tweets_controller の定義「インデックス」を使用して、つぶやきテーブルの属性を表示するだけです。緯度、経度などの条件は、座標テーブルから取得されます。tweets_controller が座標テーブルの緯度を評価できる方法はありますか、経度を入力してから、ツイートを最終ビューに表示します。正確には、coordinates_controller には変数緯度、経度、都市、および検索ボタンに params[:show] があります。tweets_controller は、coordinates_controller の属性にアクセスできる必要があります。どうすればいいですか?
<%= @tweets.each do |tweets| %>
<ul>
<li><%= tweets.id %></li>
<li><%= tweets.tweet_created_at %></li>
<li><%= tweets.tweet_source %></li>
<li><%= tweets.tweet_text %></li>
<li><%= tweets.user_id %></li>
<li><%= tweets.user_name %></li>
<li><%= tweets.user_sc_name %></li>
<li><%= tweets.user_loc %></li>
<li><%= tweets.user_img %></li>
<li><%= tweets.longitude %></li>
<li><%= tweets.latitude %></li>
<li><%= tweets.place %></li>
<li><%= tweets.country %></li>
</ul>
<% end %>
これが最終的なビュー コンテンツであり、これを表示するために、緯度と経度の条件は座標テーブルにあります