Здравствуйте, у меня есть приложение rails, которое является закрытым сообществом, использующим devise, ahoy и merit.
У нас есть эшафот, называемый ресурсами. Каждый ресурс имеет ссылку
Модель пользователя
class User < ApplicationRecord
has_merit
has_many :visits, class_name: “Ahoy::Visit”
end
Ресурсы модели
class Resource < ApplicationRecord
has_rich_text :description
belongs_to :category
end
Контроллер
Я хочу использовать Ahoy для отслеживания пользователей, которые переходят по ссылке, чтобы я мог начислять баллы за заслуги за посещение.
View
<table>
<thead>
<tr>
<th>Title</th>
<th>Link</th>
<th>Category</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% @resources.each do |resource| %>
<tr>
<td><%= resource.title %></td>
<td><%= link_to "Learn More", resource.link, class: 'btn btn-dark btn-sm' %></td>
<td><%= resource.category.name %></td>
<td><%= link_to 'Show', resource %></td>
<td><%= link_to 'Edit', edit_resource_path(resource) %></td>
<td><%= link_to 'Destroy', resource, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</tbody>
</table>
Схема
create_table "resources", force: :cascade do |t|
t.string "title"
t.string "link"
t.bigint "category_id", null: false
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
t.index ["category_id"], name: "index_resources_on_category_id"
end
Маршруты
Rails.application.routes.draw do
resources :visits
resources :resources
devise_for :users, controllers: { registrations: 'registrations' }
end
Как мне отслеживать клик по ссылке и назначать баллы?