Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails没有登录投票?_Ruby On Rails - Fatal编程技术网

Ruby on rails Rails没有登录投票?

Ruby 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

我想创建一个无需身份验证/登录的投票系统。基本上,任何人都可以投票并实现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 :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