如何在没有设计的情况下设置act_as_votable?

约萨·扎兰(JózsaZalán)

我正在关注这篇文章(我试图让人们在不登录的情况下进行投票,每次投票1 ip),当我按下upvote按钮时,出现以下错误:

评论控制器中的NoMethodError #upvote#的未定义方法`find_or_create_by_ip'

提取的源(第7行附近):

5      @comment = Comment.find(params[:id])
6      session[:voting_id] = request.remote_ip
7      voter = Session.find_or_create_by_ip(session[:voting_id])
8      voter.likes @comment
9      flash[:message] = 'Thanks for voting!'
10     respond_to do |format|

我遵循了帖子中的所有内容,创建了一个Session模型并将所有代码添加到我的文件中。这是我的代码:

#routes.rb

Rails.application.routes.draw do
  resources :posts  do
    resources :comments do
      member do
        post :upvote
      end
    end
  end

  root "posts#index"
end

#models:

class Post < ActiveRecord::Base
    has_many :comments
end

class Comment < ActiveRecord::Base
  belongs_to :post
  acts_as_votable
end

class Session < ActiveRecord::Base
    acts_as_voter
end

#controller:
class CommentsController < ApplicationController
  before_action :set_post

  def upvote
    @comment = Comment.find(params[:id])
    session[:voting_id] = request.remote_ip
    voter = Session.find_or_create_by_ip(session[:voting_id])
    voter.likes @comment
    flash[:message] = 'Thanks for voting!'
    respond_to do |format|
      format.html { redirect_to :back }
      format.js
    end
  end

  def create
    @comment = @post.comments.create(comment_params)
    redirect_to root_path
  end

  def destroy
    @comment = @post.comments.find(params[:id])
    if @comment.destroy
      flash[:success] = "Comment was deleted."
    else
      flash[:error] = "Comment could not be deleted."
    end
    redirect_to root_path
  end

  private

  def set_post
    @post = Post.find(params[:post_id])
  end

  def comment_params
    params[:comment].permit(:content)
  end
end
普拉卡什·穆西(Prakash Murthy)

Session.find_or_create_by_ip(session[:voting_id])Active Record提供动态属性finder + builder方法,它假定该sessions表具有名为的列ip

确保该sessions表具有名为的列ip

同样,首选的rails 4编写方式是:

Session.find_or_create_by(ip: session[:voting_id])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在没有〜运算符的情况下设置和清除位

来自分类Dev

如何在没有IDE的情况下设置Java工作区

来自分类Dev

Delphi ADO-如何在没有设计器的情况下设置默认数据集列类型

来自分类Dev

Stripe:如何在没有计划的情况下设置定期付款?

来自分类Dev

如何在没有HSSFWorkbook实例的情况下设置单元格样式?

来自分类Dev

如何在没有SMTP身份验证的情况下设置Logstash 1.4.2电子邮件插件

来自分类Dev

如何在没有外部计时器的情况下设置QNetworkReply超时?

来自分类Dev

如何在没有iconElementLeft的情况下设置应用栏组件?

来自分类Dev

如何在没有JavaScript的情况下设置CSS动画速度?

来自分类Dev

drivine如何在没有环境变量的情况下设置neo4j连接信息

来自分类Dev

如何在没有垂直滚动条的情况下设置100%的高度?

来自分类Dev

Amazon ALB:如何在没有自定义域的情况下设置HTTPs侦听器

来自分类Dev

如何在没有〜运算符的情况下设置和清除位

来自分类Dev

act_as_votable的问题

来自分类Dev

如何在没有IDE的情况下设置Java工作区

来自分类Dev

Delphi ADO-如何在没有设计器的情况下设置默认数据集列类型

来自分类Dev

如何在没有wicd或NetworkManager的情况下设置网络?

来自分类Dev

如何在没有HSSFWorkbook实例的情况下设置单元格样式?

来自分类Dev

使用act_as_votable gem时,如何在保存投票后执行操作?

来自分类Dev

如何在没有SMTP身份验证的情况下设置Logstash 1.4.2电子邮件插件

来自分类Dev

如何在没有VPN的情况下设置转发代理?

来自分类Dev

在没有完整路径的情况下设置imageIcon

来自分类Dev

如何在没有git的情况下设置RapidJSON

来自分类Dev

如何在没有匿名函数的情况下设置事件侦听器?(不失去范围)

来自分类Dev

如何在没有参考的情况下设置新创建的 TextField 的大小

来自分类Dev

如何在没有应用程序集成的情况下设置 Cognito 联合注册和登录

来自分类Dev

如何在没有@springboottest 的情况下设置日志级别?

来自分类Dev

如何在没有域名的情况下设置 Kerberos 领域

来自分类Dev

如何在没有用户交互的情况下设置从某个时间开始的时间控制触发器?

Related 相关文章

  1. 1

    如何在没有〜运算符的情况下设置和清除位

  2. 2

    如何在没有IDE的情况下设置Java工作区

  3. 3

    Delphi ADO-如何在没有设计器的情况下设置默认数据集列类型

  4. 4

    Stripe:如何在没有计划的情况下设置定期付款?

  5. 5

    如何在没有HSSFWorkbook实例的情况下设置单元格样式?

  6. 6

    如何在没有SMTP身份验证的情况下设置Logstash 1.4.2电子邮件插件

  7. 7

    如何在没有外部计时器的情况下设置QNetworkReply超时?

  8. 8

    如何在没有iconElementLeft的情况下设置应用栏组件?

  9. 9

    如何在没有JavaScript的情况下设置CSS动画速度?

  10. 10

    drivine如何在没有环境变量的情况下设置neo4j连接信息

  11. 11

    如何在没有垂直滚动条的情况下设置100%的高度?

  12. 12

    Amazon ALB:如何在没有自定义域的情况下设置HTTPs侦听器

  13. 13

    如何在没有〜运算符的情况下设置和清除位

  14. 14

    act_as_votable的问题

  15. 15

    如何在没有IDE的情况下设置Java工作区

  16. 16

    Delphi ADO-如何在没有设计器的情况下设置默认数据集列类型

  17. 17

    如何在没有wicd或NetworkManager的情况下设置网络?

  18. 18

    如何在没有HSSFWorkbook实例的情况下设置单元格样式?

  19. 19

    使用act_as_votable gem时,如何在保存投票后执行操作?

  20. 20

    如何在没有SMTP身份验证的情况下设置Logstash 1.4.2电子邮件插件

  21. 21

    如何在没有VPN的情况下设置转发代理?

  22. 22

    在没有完整路径的情况下设置imageIcon

  23. 23

    如何在没有git的情况下设置RapidJSON

  24. 24

    如何在没有匿名函数的情况下设置事件侦听器?(不失去范围)

  25. 25

    如何在没有参考的情况下设置新创建的 TextField 的大小

  26. 26

    如何在没有应用程序集成的情况下设置 Cognito 联合注册和登录

  27. 27

    如何在没有@springboottest 的情况下设置日志级别?

  28. 28

    如何在没有域名的情况下设置 Kerberos 领域

  29. 29

    如何在没有用户交互的情况下设置从某个时间开始的时间控制触发器?

热门标签

归档