ben

OMÜ , Bilgisayar Mühendisliği, 13'

10 Aralık 2015 Perşembe

public activity


   Public activity  gemi kullanıcıların site içerisinde hangi işlemleri yaptığını izlememizi sağlar. Bu daresteki proje uzerine inşa edeceğim.

Gem dosyamıza:

gem 'public_activity'

terminal: 
$ bundle
$ rails g public_activity:migration
$ rake db:migrate

model/storage.rb

include PublicActivity::Model
tracked

Modelimize yeni veri ekleyelim






Activityler için controller oluşturalım:

terminal:
rails g controller activities index

config/routes.rb

 dosyadan bu satırı silelim: get 'activities/index'

 yerine  bunu yazalım: resources :activities 

 





activities_controller.rb

def index
  @activities=PublicActivity::Activity.order("created_at desc")
end

view/activity/index.html.erb


<h1> Storage Takibi</h1>

<% @activities.each do |activity|%>
  <%=activity.inspect%>
<%end%>

http://localhost:2000/activities adresine gittiğimizde eklediğimiz son kaydın bilgisi var fakat braz karısık duruyor. Biraz düzene ihtiyacı  var gibi ..

bBu kaydın kimin tarafından tutulduğuda belli değil. Bunun için buradaki owner alanı bizim için yeterli

 model/storage.rb

tracked owner: ->(controller,model) {controller && controller.current_user}

applictaion_controller.rb

  include PublicActivity::StoreController
 hide_action :current_user

activity_controller.rb

      @activities=PublicActivity::Activity.order("created_at desc").where( owner_type: "User")

view/activity/index.html.erb

<h1> Storage Takibi</h1>

<% @activities.each do |activity|%>
  <div class="activity">
    <p>Eylemi yapan: <%=activity.owner.email if activity.owner%> </p>
        <p>Eylemi yaptığı model: <%=activity.trackable_type%></p>
           <p>Eylem Türü : <%=activity.key%></p>
        <p>Eylem Yaptığı Storage Id : <%=activity.trackable_id%></p>
           <br/>
  </div>

<%end%>

Yeni kayıt ekleyelim ve bakalım:

Eğer manuel yapmak istersek;

view/public_activity/storage/_create.html.erb   dosyasını oluştuurp içeriğini düzenleyelim:

<% if activity.trackable %>
  <%= link_to activity.trackable.name, activity.trackable %>
<% else %>
  which has since been removed
<% end %>

models/storage.rb  dosyasındanda tracked satırını kaldırıp düzenleyelim:

include PublicActivity::Common

rails c ile konsole gecip yada controlların istediğimiz yerine yazarak istediğimiz şekilde kullanıcıları izleyebiliriz

@storage.create_activity :create, owner: current_user