Обновить атрибут через link_to
Метод должен обновлять атрибут каждый раз, когда пользователь нажимает link_to. Накопление принадлежит: пользователю и: вопросу
<%= link_to "+1", controller: "/accumulations", action: "vote_up",id: @question, user_id: current_user, method: "post" %>
def vote_up
@question = Question.find(params[:id])
@accumulation = Accumulation.where(user_id: current_user.id, question_id: @question.id )
3-й атрибут накопления - это точка:
@accumulation.point = Accumulation.increment_counter(:point, @accumulation)
@accumulation.save
redirect_to :back, notice: "+1"
end
Это дает мне это сообщение:
неопределенный метод `point='для # ActiveRecord::Relation:0xaa7fc10
Как я могу обновить атрибут?
1 ответ
Предполагая, что есть только одно накопление для любого данного пользователя / вопроса, вы можете добавить .first
на ваш запрос:
@accumulation = Accumulation.where(user_id: current_user.id, question_id: @question.id ).first
В противном случае вы пытаетесь установить point
в коллекции записей, а не в отдельном объекте ActiveRecord.