我正在研究一種方式,可以讓用戶「標記」評論的評論。我在評論中使用一個整數列,當用戶點擊「標記」時,該評論隨時會增加,主持人首先會看到最多標記的評論。我得到了這個與我的一個模型更早的工作,我用我的評論模型相同的方式,但它沒有做任何事情,沒有拋出任何錯誤,但也沒有做任何事情。整數列在Rails中不遞增
Reviews_controller.rb
def flag
@review = Review.find(params[:id])
@review.increment!(:flag)
end
show.html.erb
<%= link_to 'Flag', flag_review_path(review), method: :post, :remote => true %>
遷移到用於標誌位和有用給予好評添加柱(將在後面實施)
class AddColumnsToReviews < ActiveRecord::Migration
def change
add_column :reviews, :flag, :integer, default: 0
add_column :reviews, :useful, :integer, default: 0
end
end
**路線爲標誌**這個
resources :reviews do
member do
post 'flag', :review
end
end
任何幫助將不勝感激。此外,我不知道這是否恰當,但即使我的遷移聲明這些字段的默認值應爲0,我的數據庫中顯示爲NULL。
您的服務器日誌是否顯示提交或回滾到數據庫?你有沒有在控制器中放置斷點以確保'params [:id]'在那裏並且'@ review'是有效的? –
嘗試在遷移中指定null:false。當您點擊ReviewsController#flag時,是否在控制檯中看到任何SQL跟蹤 - 如果您不太可能出現路由問題。 – David
如果刪除:remote => true會發生什麼? – Gaston