2

私は駐車監視アプリを作成していますが、特にプログラミングと Ruby on Rails はまったくの初心者です。Gmaps の優れた拡張機能である Gmaps4rails を見つけました。

地図上に駐車場(Class Place)の場所と混雑状況を示すマーカーがいくつかあります。ユーザー (クラス ユーザー) はマーカーをクリックできる必要があり、この小さなポップアップ情報ウィンドウには「フォロー」ボタンがあり、ユーザーは駐車場の混雑について最新情報を入手できます。

これが私のコードです

モデル関係

ユーザー

has_many :parking_relationships, :foreign_key => "watcher_id",
                                 :dependent => :destroy
has_many :watching, :through => :parking_relationships, 
                                :source => :watched

場所(駐車場)

has_many :reverse_parking_relationships, :foreign_key => "watched_id",
                                         :dependent => :destroy,
                                         :class_name => "ParkingRelationship"
has_many :watchers, :through => :reverse_parking_relationships,
                                :source => :watcher

駐車関係

belongs_to :watcher, :class_name => "User"
belongs_to :watched, :class_name => "Place"

コントローラを配置

def index
@user = current_user
@place = Place.find(params[:id])
@places = Place.all
 @json = Place.all.to_gmaps4rails do |place, marker|
  marker.infowindow render_to_string(:partial => "/places/watch_form", :locals => {       :object => place})
 end
respond_with @json

終わり

部分的な_watch_form.html.erb

<% unless current_user?(@user) %>
 <div id="follow_form">
  <% if current_user.watching?(@place) %>
   <%= render 'watch' %>
  <% else %>
   <%= render 'unwatch' %>
  <% end %>
 </div>
<% end %>

部分的な_watch.html.erb

<%= form_for current_user.parking_relationships.
                      build(:watched_id => @place.id) do |f| %>
 <div><%= f.hidden_field :watched_id %></div>
 <div class="actions"><%= f.submit "Watch" %></div>
<% end %>

部分的な _unwatch.html.erb

<%= form_for current_user.parking_relationships.find_by_watched_id(@place),
         :html => { :method => :delete } do |f| %>
 <div class="actions"><%= f.submit "Unwatch" %></div>
<% end %>

データベース構造

Users name, email, etc
Places Name, address, latitude, longitude, gmaps, congestion
Parking_relationships watched_id, watcher_id

これはうまくいきません。マーカーをクリックしても何も起こらず、[ウォッチ] または [ウォッチ解除] ボタンが表示されません。これは、Places コントローラーの index アクションに @places があるためだと思います。

UPDATE:
Here's the app on the web
GitRepositary https://github.com/ilyacherevkov/parking_bob
Map http://parking-bob.heroku.com/places
Watchers of the parking http://parking-bob.heroku.com/places/1,2,3 etc/watchers
Users watching parkings http://parking-bob.heroku.com/users/1,2,3 etc/watching

ありがとう、皆さん

4

0 に答える 0