Rails обновляет PUT с тем же URL - PullRequest
0 голосов
/ 29 февраля 2012

Я звоню в случайном порядке Post и разрешаю пользователям добавлять +1 или -1 к сообщению перед загрузкой другого сообщения. Моя модель генерирует случайную запись по URL / posts / random, используя следующее.

Post.rb // Модель

def self.find(*args)
  if args.first.to_s == "random"
    Post.find :first, :offset => rand(Post.count)
  else
    super
end

Этот код генерирует случайное сообщение, когда пользователь посещает сообщения / случайно. Тем не менее, я также определил поля thumbs_up и thumbs_down в базе данных, которые соответствуют изображениям thumb_up и thumb_down, при нажатии на которые необходимо +1 или -1 к значению в базе данных перед перенаправлением на другой / сообщения / случайный. Насколько я понимаю, для этого мне нужно вызвать метод обновления PUT, так как мой URL-адрес - posts / random, а не posts / 1, как я могу это сделать? Нужно ли менять маршруты?

1 Ответ

2 голосов
/ 29 февраля 2012

Во-первых, вам понадобится переменная экземпляра, представляющая случайную запись, чтобы вы могли использовать ее в ссылках вверх и вниз.Затем вам нужно убедиться, что эти ссылки выглядят примерно так:

<%= link_to "Thumbs Up", post_path(@post, thumbs_up: 1), method: :put %>
<%= link_to "Thumbs Down", post_path(@post, thumbs_down: 1), method: :put %>

Таким образом, когда в вашем действии обновления для вашего контроллера сообщений вы можете сделать что-то вроде этого:

@post.update_attributes(thumbs_up: @post.thumbs_up + params[:thumbs_up],thumbs_down: @post.thumbs_down + params[:thumbs_down] )

Это только начало, но я думаю, что это должно привести вас в правильном направлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...