Переопределение модели рельсов 3.1
Я пытаюсь переопределить модель драгоценного камня forem, чтобы я мог использовать драгоценный камень thumbs_up для голосования.
Я сделал рельсы для данной модели Post и попытался унаследовать модель post от forem по этой строке кода.
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
Я продолжаю получать эту ошибку
неопределенный метод `voice_up_post_path'
в моем route.rb
mount Forem::Engine, :at => "/forums"
resources :posts do
member do
post :vote_up
end
end
Я предполагаю, что я делаю что-то действительно глупое здесь, и я не переопределяю модель правильно. Я использовал это Разъяснение о том, как использовать жемчужину голосования "thumbs_up" с постом Rails 3 для настройки thumbs_up
Может кто-нибудь помочь??
2 ответа
Кажется, это была глупая ошибка, осознал это во время обсуждения с patrickmcgraw.
Forem скрывает ваши маршруты, и вы должны упомянуть main_app перед маршрутами, поэтому после написания
main_app.vote_up_post_path
вместо vote_up_post_path
страница была снова.
Надеюсь, это поможет кому-то, пытающемуся использовать forem.
Если я правильно понимаю ваш вопрос, вы хотите изменить поведение forem Post, чтобы поддержать голосование с помощью activ_as_votable. Чтобы это работало, вам нужно заново открыть класс Forem::Post в инициализаторе (например, config/initializers/forem.rb) и добавить к нему строку arguments_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