【发布时间】:2012-01-10 06:39:42
【问题描述】:
我正在尝试将 forem 与 thumbs_up 集成。我继承了 Forem Post 模型和控制器。
这是我的控制器:-
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
这是 Forem 的 Post Controller 的样子:-
module Forem
class PostsController < Forem::ApplicationController
before_filter :authenticate_forem_user
before_filter :find_topic
.
.
.
.
private
def find_topic
@topic = Forem::Topic.find(params[:topic_id])
end
end
end
这是我的路线:-
mount Forem::Engine, :at => "/forums"
resources :posts do
member do
post :vote_up
end
end
这是我的看法:-
<%= link_to t('vote for this post!', :scope =>"forem.post"), main_app.vote_up_post_path(@post), :method => :post %>
这是我得到的错误:-
ActiveRecord::RecordNotFound in PostsController#vote_up
找不到没有 ID 的 Forem::Topic
可能是什么问题?
【问题讨论】:
-
current_user.vote_for长什么样子? -
@muistooshort current_user.vote_for 的样子是什么意思? vote_for 由 thumbs_up gem 提供
-
看起来
current_user.vote_for正在调用Forem::Topic.find而不给它一个 ID,这就是错误消息似乎告诉你的,我没有看到任何其他可能导致它的东西,所以我我想知道为什么vote_for正在做一些不应该做的事情。 -
@muistooshort 这里是 thumbs_up gem 的链接github.com/brady8/thumbs_up/blob/master/lib/acts_as_voteable.rb,我认为它定义了 vote_for 操作。如果您有时间,请查看它
-
我也从 forem::postscontroller 继承了我的帖子控制器,这可能是个问题吗?从 postcontroller 调用 Forem:Topic.find 的意义上说?它实际上做了一个 before_filter find_topic
标签: ruby-on-rails routing ruby-on-rails-3.1 gem