Переопределение модели рельсов 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
Другие вопросы по тегам