1

up/down我有这段代码可以在我的 rails 应用程序中实现拇指功能

if params[:vote][:type] == "up"
    answer = Answer.find_by_id(params[:vote][:id])
    answer.increment(:ups)
    render text: answer.ups
end
if params[:vote][:type] == "down"
    answer = Answer.find_by_id(params[:vote][:id])
    answer.increment(:downs)
    render text: answer.downs
end


它不会给出任何错误,但增量值不会在数据库中更新。

此代码在 Rails 控制台中正常工作。

请帮忙,

提前致谢

4

3 回答 3

3

这是设计使然。该方法增加属性但不保存。如果您也想保存,请使用increment!( bang version )。

于 2013-06-05T10:35:03.627 回答
1

检查一次

if params[:vote][:type] == "up"
    answer = Answer.find_by_id(params[:vote][:id])
    answer.to_i.increment(:ups)
    render text: answer.ups
elsif params[:vote][:type] == "down"
    answer = Answer.find_by_id(params[:vote][:id])
    answer.to_i.increment(:downs)
    render text: answer.downs
end
于 2013-06-05T10:31:02.110 回答
1

你能写下你的模型的模式吗,我的意思是数据类型的字段

另一个迁移:

change_column :answers, :ups, :integer, :default: 0
change_column :answers, :downs, :integer, :default: 0

可能会帮助你

于 2013-06-05T11:10:16.563 回答