Попытка реализовать очень простые точки, простые в Rails - PullRequest
0 голосов
/ 08 июня 2018

См. Следующий код в моем контроллере

def create
        @wad = current_user.wads.build(wad_params)
        if @wad.save
            current_user.points == current_user.points + 5
            redirect_to @wad    
        else
            flash[:error] = 'Error try again'
            render 'new'
        end
    end

Моя цель состоит в том, чтобы, когда пользователь создает пачку, он получает 5 баллов.Я перенес столбец точек в пользовательскую таблицу нормально и могу обновлять точки через консоль.

Я вообще не получаю никаких ошибок, пачки создаются как обычно, и страница перенаправляется правильно, нозначение очков не обновляется в пользовательской таблице.Есть идеи, в чем может быть проблема?

1 Ответ

0 голосов
/ 08 июня 2018

Пара моментов здесь:

Во-первых, изменения в вашем user не сохраняются в данный момент, поскольку вы не сохраняете ни одну из записей.

Кроме того, вам понадобитсяиспользовать один =, чтобы назначить points пользователя, или метод, как в следующем примере.Следующий код преодолеет это:

def create
  @wad = current_user.wads.build(wad_params)
  if @wad.save
    current_user.update_attributes(points: current_user.points + 5) # update_attributes assigns the attributes and saves
    redirect_to @wad    
  else
    flash[:error] = 'Error try again'
    render 'new'
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...