2 つの追加の整数フィールドが:votes_up
あり:votes_down
、Rails アプリケーションの Microphoto モデルにあります。DBに手動で初期値を設定していません。
これは私のコントローラーにあります:
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