1
我想允许用户在没有注册的情况下对帖子进行投票,并且将投票连接到他们的IP地址。我试过this post,但我需要更多的澄清。这是错误的IM从posts_controller越来越acts_as_votable使用IP地址
未定义的方法`find_or_create_by_ip”为#
这是到目前为止我的代码:
posts_controller:
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
周
的routes.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
在other post有人说加一个IP列到会话表。这到底是什么意思呢?我也看到了我需要创建一个数据库表的地方。我呢?我该怎么做?对不起,我不得不发布这个,让我对这个很新,所以如果它对我更好的说明会很棒。谢谢!
谢谢,我改变了这一点。尽管如此,我仍在收到错误。 “未定义的方法find_or_create_by'为#” –
DavidK
好吧,我改变了这一点,但现在我有一个关于创建表的新错误。 “未定义的局部变量或方法'请求'会话(表不存在):类”我将如何去创建? – DavidK
你使用什么进行验证?您是否有创建会话表的迁移? –