我正试图覆盖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的人。