覆盖模型轨道3.1



我正试图覆盖forem-gem的一个模型,以便可以使用thumbs_up gem进行投票。

我做了一个rails g模型Post,并试图通过这行代码继承forem的Post模型

class Post < Forem::Post
    acts_as_voteable
end

与控制器相同

class PostsController < Forem::Postscontroller
    def vote_up
    begin
      current_user.vote_for(@post = Post.find(params[:id]))
      render :nothing => true, :status => 200
    rescue ActiveRecord::RecordInvalid
      render :nothing => true, :status => 404
    end
  end
end

我一直收到这个错误

未定义的方法`vote_up_post_path'

在我的路线上。rb

 mount Forem::Engine, :at => "/forums"

resources :posts do
  member do
    post :vote_up
  end
end

我想我在做一些非常愚蠢的事情,我没有正确地覆盖模型。我在使用关于如何使用";拇指向上";投票宝石与轨道3张贴设置拇指向上

有人能帮忙吗??

如果我没有答对你的问题,你想改变forem-Post的行为,以便支持使用acts_as_votable进行投票。要实现这一点,您需要在初始化器(例如config/initializers/Forem.rb)中重新打开Forem::Post类,并在其中添加acts_as_votable行,如下所示:

module Forem
  class Post
    acts_as_votable
  end
end

Forem::PostsController:也是如此

module Forem
  class PostsController
    def vote_up
      begin
        current_user.vote_for(@post = Post.find(params[:id]))
        render :nothing => true, :status => 200
      rescue ActiveRecord::RecordInvalid
        render :nothing => true, :status => 404
      end
    end
  end
end

这似乎是一个愚蠢的错误,在与patrickmcgraw讨论时意识到了这一点。

forem隐藏了你的路线,你必须在路线之前提到main_app,所以在写之后

main_app.vote_up_post_path而不是vote_up_post_path,页面再次打开。

希望它能帮助尝试使用forem的人。

相关内容

  • 没有找到相关文章

最新更新