Ruby on rails Rails没有登录投票?
我想创建一个无需身份验证/登录的投票系统。基本上,任何人都可以投票并实现cookies和ip来限制投票。我不是在使用Desive,只是充当voteable。到目前为止,投票还没有增加。我不确定是否正在创建用户 post_controller.rbRuby on rails Rails没有登录投票?,ruby-on-rails,Ruby On Rails,我想创建一个无需身份验证/登录的投票系统。基本上,任何人都可以投票并实现cookies和ip来限制投票。我不是在使用Desive,只是充当voteable。到目前为止,投票还没有增加。我不确定是否正在创建用户 post_controller.rb def current_user @current_user ||= User.find(session[:user_id]) end routes.rb Rails.application.routes.draw do resources
def current_user
@current_user ||= User.find(session[:user_id])
end
routes.rb
Rails.application.routes.draw do
resources :posts do
member do
put "like", to: "posts#upvote"
end
end
root "posts#index"
end
post.rb模型
class Post < ActiveRecord::Base
acts_as_votable
end
class Post
看起来像是的行为,因为votable
必须将标识符与“投票”关联起来:
标识符可以是任何东西(看起来),这意味着它也可以是IP
:
#app/models/ip.rb
class Ip < ActiveRecord::Base
# columns id | ip | user_agent | created_at | updated_at
end
这将允许您存储
IP
地址(来自对象),这将允许您定义投票人等。向我们展示您迄今为止所做的工作。一些代码或问题我们可以帮你什么问题?抱歉!我是新手,但我已经从我的应用程序中添加了一些代码。
#config/routes.rb
resources :posts do
match :vote, via: [:post,:delete], on: :member
end
#app/controllers/posts_controller.rb
class PostsController < ApplicationController
def vote
@ip = Ip.find_or_create_by ip: request.remote_ip
if request.delete?
# remove vote
elsif request.post?
# add vote
end
end
end