所以我試圖記錄一個鏈接被點擊的次數,但不能超過最後的障礙。鏈接被點擊的次數
我見到目前爲止以下內容:
的config/routes.rb中
resources :papers do
resources :articles do
resources :clicks
end
end
click.rb
class Click < ActiveRecord::Base
belongs_to :article, counter_cache: true
validates :ip_address, uniqueness: {scope: :article_id}
end
clicks_controller.rb
類ClicksController < ApplicationController的
def create
@article = Article.find(params[:article_id])
@click = @article.clicks.new(ip_address: request.ip)
@click.save
end
end
article.rb
class Article < ActiveRecord::Base
has_many :clicks
end
schema.rb
create_table "clicks", force: true do |t|
t.integer "article_id"
t.string "ip_address"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "articles", force: true do |t|
t.datetime "created_at"
t.datetime "updated_at"
t.text "title"
t.string "url"
t.integer "paper_id"
t.integer "clicks_count"
end
index.html.erb - 文章
<% @articles.each do |article| %>
<div class="articles col-md-4">
<%= link_to article.url, target: '_blank' do %>
<h4><%= article.title %></h4>
<h5><%= article.paper.name.upcase %></h5>
<h6><%= article.created_at.strftime("%d %B %y") %></h6>
<% end %>
首先,這個設置看起來是否正確,沒有人看到我可能出錯的地方嗎? 其次,我不知道如何設置我的視圖,以便當點擊現有的鏈接點擊註冊和計數增加?
感謝
感謝@ForgetTheNorm,我實際上只是通過用'<%= link_to paper_article_views_path(article.id,article),method :: post,target:'_blank'do%>'替換原來的link_to來實現這個工作,但是我仍然得不到的是爲什麼我需要給路由'article.id'和'文章'?我想通過試驗和錯誤..謝謝 – Robbo 2014-09-03 14:47:18
@James編輯您的原始消息,並分享你的'config/routes',你的路線很奇怪。 – pierallard 2014-09-03 14:51:43
我已經添加了'routes.rb'。你是說路線嵌套的方式是我不得不將'article.id'和'article'放到路線上的原因嗎?歡呼聲 – Robbo 2014-09-03 15:44:42