我有两个额外的整数字段,:votes_up
并且:votes_down
在 Rails 应用程序中的 Microphoto 模型中。我没有在数据库中手动设置任何初始值。
这是在我的控制器中:
def vote_up
@microphoto = Microphoto.find(params[:id])
@microphoto.update_attribute(:votes_up, @microphoto.votes_up + 1)
redirect_to root_path
end
def vote_down
@microphoto = Microphoto.find(params[:id])
@microphoto.update_attribute(:votes_down, @microphoto.votes_down + 1)
redirect_to root_path
end
我认为这是:
<%= link_to "vote up", vote_up_microphotos_url(feed_item.id), :method => :put %>
<%= link_to "vote down", vote_down_microphotos_url(feed_item.id), :method => :put %>
但是,当我点击例如投票链接时,它给了我错误:
NoMethodError in MicrophotosController#vote_up
undefined method `+' for nil:NilClass
我认为使用update_attribute
. 我的一个朋友也提到,问题可能是由于0
未为字段设置初始值。
更新
另一个问题,一定是错字,但我找不到。votes_up 链接可以正常工作并正确呈现,但 votes_down 不能!uninitialized constant MicrophotosController::O