Обновить атрибут через 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.

Другие вопросы по тегам