Я хочу, чтобы пользователи могли голосовать за сообщения без регистрации, а голосование вместо этого было привязано к их IP-адресу. Я попытался выполнить этот пост, но Мне нужно еще несколько разъяснений. это ошибка, которую я получаю от posts_controller
неопределенный метод `find_or_create_by_ip' для #
Это мой код до сих пор:
сообщения_контроллер:
def upvote
@post = Post.find (params[:id])
session[:voting_id] = request.remote_ip
upvote = session.find_or_create_by_ip(session[:voting_id])
@post.upvote
redirect_to :back
end
def downvote
@post = Post.find (params[:id])
session[:voting_id] = request.remote_ip
downvote = session.find_or_create_by_ip(session[:voting_id])
@post.downvote
redirect_to :back
end
модель сеанса:
class session < ActiveRecord::Base
acts_as_voter
request.remote_ip
end
маршруты.rb:
Rails.application.routes.draw do
get 'static_pages/home'
get 'static_pages/about'
resources :posts do
member do
put "like" , to: "posts#upvote"
put "dislike" , to: "posts#downvote"
end
end
В другом сообщении кто-то сказал добавьте столбец ip в таблицу сеансов. Что именно это значит? Я также где-то видел, что мне также нужно будет создать таблицу БД. я? и как бы я это сделал? Извините, что пришлось опубликовать это, я довольно новичок в этом, поэтому было бы здорово, если бы это было изложено лучше для меня. Спасибо!